python如何访问不同文件夹中的所有文件

2024-09-25 00:21:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我当前正在访问我定义的路径中的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文件被组织在不同的文件夹中呢?有没有办法让文件循环到文件夹中的每个文件?也就是说,访问文件夹,然后循环访问每个文件,然后转到下一个文件夹,然后做同样的操作?在

我希望获得每个xls文件所在文件夹的名称,并将它们合并到df中,如下所示:

^{pr2}$

这些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示例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

Tags: 文件samplepath文件夹名称dffilesxls
1条回答
网友
1楼 · 发布于 2024-09-25 00:21:14

{你可以使用它 (这严格假设您在pk list文件夹下只有子文件夹,没有文件。此外,第一个子文件夹中的所有文件必须存在于其他子文件夹中)

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

相关问题 更多 >