在特定约束下,如何使用Python浏览目录中的文件并输出熊猫数据框?

问题描述 投票:1回答:1

因此,我正在使用Pyhton,我有一个父目录,其中有两个子目录,依次包含许多目录,每个目录包含三个文件。我要获取每个目录的第三个文件(这是一个.CSV文件),并将它们解析为一个pandas数据框。这是我到目前为止的代码

import os

rootdir ='C:\\Dir\\Dir\\Dir\\root(parent)dir'
# os.listdir(rootdir)
# os.getcwd()

filelist = os.listdir(rootdir)
# file_count = len(filelist)

def list_files(dir):
    r = []
    for root, dirs, files in os.walk(dir):
        # if files.startswith('C74'):
            for name in files:
                r.append(os.path.join(root, name))
    return r

filelist = list_files(rootdir)

现在带有“ filelist”,我将所有目录中包含的所有文件路径作为字符串。现在我需要找到:1.以三个特定字母开头的文件名(例如funtest,在这种情况下,第一个字母为fun)2.提取每个第三个文件,然后从中构造一个熊猫数据框,以便我可以继续进行数据分析。

python pandas os.walk
1个回答
0
投票

IIUC,我们可以使用pathlib中的递归函数轻松完成此操作:

    from pathlib import Path
    csv = [f for f in Path(r'parent_dir').rglob('*C74*.csv')]
    df = pd.concat([pd.read_csv(f) for f in csv])

如果您想再次将列表子集化,则可以这样做

subset_list = [x for x in csv if 'abc' in x.stem] 

测试

[x for x in csv if 'abc' in x.stem]
out : ['C74_abc.csv', 'abc_C74.csv']
© www.soinside.com 2019 - 2024. All rights reserved.