Python 读取目录中以特定字符串开头的所有文件

Python 读取目录中以特定字符串开头的所有文件,python,file,reference,directory,Python,File,Reference,Directory,假设我有一个目录 此目录中有单个文件和文件夹。 其中一些文件夹还可能包含子文件夹等。 我要做的是找到这个目录中所有以事件开头的文件,并将每个csv读入一个数据框。 我能够循环遍历所有文件并获取名称,但无法将它们读入数据帧。 我得到一个错误,即__;.csv不存在,因为它可能不直接位于目录中,而是位于该目录中另一个文件夹中的文件夹中。 我一直在尝试附加的代码 inc_files2 = [] pop_files2 = [] for root, dirs, files in os.walk(direc

假设我有一个目录

此目录中有单个文件和文件夹。 其中一些文件夹还可能包含子文件夹等。 我要做的是找到这个目录中所有以事件开头的文件,并将每个csv读入一个数据框。 我能够循环遍历所有文件并获取名称,但无法将它们读入数据帧。 我得到一个错误,即__;.csv不存在,因为它可能不直接位于目录中,而是位于该目录中另一个文件夹中的文件夹中。 我一直在尝试附加的代码

inc_files2 = []
pop_files2 = []
for root, dirs, files in os.walk(directory):
    for f in files:
        if f.startswith('Incidence'):
            inc_files2.append(f)
        elif f.startswith('Population Count'):
            pop_files2.append(f)
for file in inc_files2:
    inc_frames2 = map(pd.read_csv, inc_files2)
for file in pop_files2:
    pop_frames2 = map(pd.read_csv, pop_files2)

您必须从您所在的根目录添加路径。您只向列表中添加文件名,而不是其路径。您可以使用类似的方法来添加路径:

inc_files2.append(os.path.join(root, f))

将整个路径名(而不仅仅是裸文件名)附加到inc_files2。

可以用来读取文件的完整路径

您可以通过对代码进行以下更改来利用这一点

for root, dirs, files in os.walk(directory):
    for f in files:
        f_abs = os.path.abspath(f)
        if f.startswith('Incidence'):
            inc_files2.append(f_abs)
        elif f.startswith('Population Count'):
            pop_files2.append(f_abs)
您没有在目录中迭代以查找子文件夹中的文件。你是有意的吗?