Чтение всех файлов, которые начинаются с определенной строки в каталоге - PullRequest
0 голосов
/ 28 марта 2019

Скажи, у меня есть каталог.

  • В этом каталоге находятся как отдельные файлы, так и папки.
  • Некоторые из этих папок также могут иметь подпапки и т. Д.
  • Я пытаюсь найти все файлы в этом каталоге, которые начинаются с "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 ]

1 голос
/ 28 марта 2019

Вы добавляете в списки только имя файла, а не его путь.Вы можете использовать что-то вроде этого, чтобы добавить пути вместо:

inc_files2.append(os.path.join(root, f))
0 голосов
/ 28 марта 2019

Вы можете использовать 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)
0 голосов
/ 28 марта 2019

Добавить полный путь, а не только пустое имя, к inc_files2.

0 голосов
/ 28 марта 2019

Вы должны добавить путь из корневого каталога, в котором вы находитесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...