Использование os.walk для чтения файлов - PullRequest
0 голосов
/ 08 мая 2018

Я пытаюсь получить доступ к файлам с корнями в подкаталогах основного каталога. Для этого я использую os.walk(). Я могу успешно получить имена файлов и могу сохранить их в списке. Однако, когда я пытаюсь открыть эти файлы, используя open(filename, 'r'), я получаю сообщение об ошибке, сообщающее, что такой файл или каталог не завершаются.

Мне кажется, проблема в том, что я получаю доступ только к 'names', а не к самим файлам. Мой код выглядит так:

list_of_files = {}
for (dirpath, dirnames, filenames) in 
os.walk("C:\\Users\\Akarshkb\\Desktop\\cs361hw\\HMP_Dataset"):
    for filename in filenames:
        if filename.endswith('.txt'): 
            list_of_files[filename] = os.sep.join([dirpath, filename])
            file = open(filename, 'r')
            file.read()
            file.close()
print (list_of_files)

И я получаю следующую ошибку:

        `FileNotFoundError                         Traceback (most recent call 
    last)
    <ipython-input-40-10ae3e92446a> in <module>()
          4         if filename.endswith('.txt'):
          5             list_of_files[filename] = os.sep.join([dirpath, 
    filename])
    ----> 6             file = open(filename, 'r')
          7             file.read()
          8             file.close()

    FileNotFoundError: [Errno 2] No such file or directory: 'Accelerometer-2011- 
   04-11-13-28-18-brush_teeth-f1.txt'`

Любая помощь будет высоко ценится.

1 Ответ

0 голосов
/ 08 мая 2018

Вы не должны игнорировать значение dirpath.

Попробуйте это:

        file = open(os.path.join(dirpath, filename), 'r')
...