2017-06-20 4 views
0

ich derzeit xls-Dateien in einem Pfad am Zugriff auf die ich definiert durch:Python, wie alle Dateien zugreifen, die in verschiedenen Ordnern sind

path = os.chdir('C:\\Users\\BKS\\Desktop\\python\\pk list') 
files = os.listdir(path) 
files_xls = [f for f in files if f[-3:] == 'xls'] 

df = [pd.read_excel(f, 'Sheet1')[['Exp. m/z','Intensity']] for f in files_xls] 

Dann dachte ich mir, was passiert, wenn die xls-Dateien organisiert sind, in verschiedenen Ordnern? Gibt es eine Möglichkeit, files_xls zu jeder Datei innerhalb eines Ordners zu loopen? Das heißt, auf Ordner zugreifen und dann jede Datei durchlaufen, dann zum nächsten Ordner gehen und dann dasselbe tun?

Ich möchte die Namen der Ordner erhalten, die jeweils xls-Dateien in sind, und kombiniere sie zu df, die wie folgt aussieht: in einem Ordner Diese xls-Dateien

Tag1 Tag2 Tag 
1  1  A01.xls 
2  1  A02.xls 
3  2  A03.xls 
4  2  A04.xls 
5  3  A05.xls 

sein wird:

'C:\\Users\\BKS\\Desktop\\python\\pk list\\20170620 Sample 1-48' 

und einige andere xls-Dateien in einem anderen Ordner:

'C:\\Users\\BKS\\Desktop\\python\\pk list\\20170620 Sample 49-96' 

Diese Ordner die xls f haben Ile mit den gleichen Namen, aber mit unterschiedlichen Daten in ihnen. Also mein Ziel ist es, alle Dateien im pk list Ordner in der Reihenfolge zu durchlaufen und die Namen der Ordner wie zB 20170620 Sample 1-48 mit dem df zusammenzuführen. Lassen Sie uns für die obige Tabelle sagen, diese beiden Ordner haben A01 ~ A05.xls:

Tag1 Tag2 Folder Name    Tag 
1  1  20170620 Sample 1-48 A01.xls 
2  1  20170620 Sample 1-48 A02.xls 
3  2  20170620 Sample 1-48 A03.xls 
4  2  20170620 Sample 1-48 A04.xls 
5  3  20170620 Sample 1-48 A05.xls 
1  1  20170620 Sample 49-96 A01.xls 
2  1  20170620 Sample 49-96 A02.xls 
3  2  20170620 Sample 49-96 A03.xls 
4  2  20170620 Sample 49-96 A04.xls 
5  3  20170620 Sample 49-96 A05.xls 
+3

Machen Sie sich vertraut mit 'os.walk' Funktion. –

Antwort

0

Sie könnten import glob und verwenden es:
(Dies setzt voraus, streng, dass Sie nur Unterordner unter pk list Ordner und keine Dateien. auch alle vorliegenden Dateien im ersten Unterordner müssen in den anderen Unterordner vorhanden sein)

import glob 
import os 

os.chdir("C:\\Users\\BKS\\Desktop\\python\\pk list\\20170620 Sample 1-48") 
filenames = glob.glob("*.xls") 
os.chdir("C:\\Users\\BKS\\Desktop\\python\\pk list") 
foldernames = glob.glob("*") 

for filename in filenames: 
    df = [] 
    for foldername in foldernames: 
     # merge according to your requirement 
     df.append(pd.read_excel(f, 'Sheet1')[['Exp. m/z','Intensity']]) 
    # Use merged 'df' here 
Verwandte Themen