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

时间:2019-03-28 00:08:28

标签: python file reference directory

说我有一个目录。

  • 在此目录中,有单个文件和文件夹。
  • 其中一些文件夹可能还包含子文件夹等。
  • 我想做的是在此目录中找到所有以“ Incidences”开头的文件,并将每个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)

4 个答案:

答案 0 :(得分:1)

您仅将文件名添加到列表,而不添加其路径。您可以改用以下方式添加路径:

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

答案 1 :(得分:0)

您必须从您所在的根目录添加路径

答案 2 :(得分:0)

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

答案 3 :(得分:0)

您可以使用os.path.abspath(f)来读取文件的完整路径。

您可以通过对代码进行以下更改来利用此功能。

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)