【发布时间】:2017-11-22 16:04:23
【问题描述】:
我目前正在访问我定义的路径中的 xls 文件:
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]
然后我想,如果 xls 文件被组织在不同的文件夹中呢?有没有办法让 files_xls 循环到文件夹中的每个文件?这意味着,访问文件夹,然后遍历每个文件,然后转到下一个文件夹,然后做同样的事情?
我希望获取每个 xls 文件所在文件夹的名称,并将它们合并到 df 中,如下所示:
Tag1 Tag2 Tag
1 1 A01.xls
2 1 A02.xls
3 2 A03.xls
4 2 A04.xls
5 3 A05.xls
这些 xls 文件将在一个文件夹中:
'C:\\Users\\BKS\\Desktop\\python\\pk list\\20170620 Sample 1-48'
其他一些 xls 文件将在另一个文件夹中:
'C:\\Users\\BKS\\Desktop\\python\\pk list\\20170620 Sample 49-96'
这些文件夹可能包含同名的 xls 文件,但其中包含不同的数据。所以我的目标是按顺序遍历pk list文件夹中的所有文件,并将20170620 Sample 1-48等文件夹的名称合并到df中。假设对于上表,这两个文件夹有 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
【问题讨论】:
-
熟悉
os.walk函数。
标签: python pandas dataframe operating-system