os.walk () не выдает ни ошибки, ни результата в python - PullRequest
0 голосов
/ 16 февраля 2020

Я пытаюсь напечатать имена файлов, которые находятся в предопределенных путях, где пути хранятся в paths.txt. Но когда я выполняю приведенный ниже код, я не получаю ни ошибок, ни напечатанных имен файлов.

import os
with open('D:\paths.txt', 'r') as file:
    data = file.read()
    path = data.split(";")
    print(path)
    for line in path:
        for root, dirs, files in os.walk(line):
            for name in files:
                print(name)

Example of paths.txt

1 Ответ

1 голос
/ 16 февраля 2020

Вам необходимо удалить двойные кавычки из файла (""). Вот почему; Когда файл читается с помощью Python, после того как он делает .split(), символы двойной кавычки являются частью строки Python. Таким образом, вместо перехода в os.walk() путь D:\bp1 вы фактически проходили в "D:\bp1", и не было пути, начинающегося с ", поэтому ничего не происходило.

Вы бы только нужно указывать двойные кавычки, если вы пишете имя в терминале / командной строке и не хотите экранировать двойные кавычки, или если вы пытаетесь определить строку внутри Python с использованием литерала двойной кавычки, например, path = "D:\\bp1" (обратите внимание, что в этом случае вам также нужно экранировать \ с другим.

...