Запись всех файлов в 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 для лучшей читаемости и надёжности.

→ Ссылка