Запись всех файлов в txt файл
Есть такой код который смотрит все файлы и если написать print(x)
пишется все пути, но мне нужно чтобы оно записывалось в output.txt
, но при этом почему то по окончанию записывается только одна строчка из множества как дописать чтобы записывались все пути тех или иных файлов
import os
pathtooutput = ""
for root, dirs, files in os.walk("D:/"):
for file in files:
x = os.path.join(root, file)
with open(pathtooutput, "w", newline="", encoding="utf-8") as text_file:
text_file.write(x)
Ответы (1 шт):
Автор решения: mrBars1k
→ Ссылка
Ваша проблема заключается в том, что Вы используете метод "w"
для записи данных, а этот метод перезаписывает каждый раз файл при новой итерации.
Чтобы записи дополнялись, а не перезаписывались, необходимо использовать метод a
.
with open(pathtooutput, "a", newline="", encoding="utf-8") as text_file:
for root, dirs, files in os.walk("D:/"):
for file in files:
x = os.path.join(root, file)
text_file.write(x + "\n") # Здесь добавим также перенос строки;
Я вынес всё под контекстный менеджер with
для лучшей читаемости и надёжности.