Как я могу пройти по всем файлам в папке?

Есть заданный путь, допустим, диск D:, как я могу пройти по всем папкам и подпапкам, доходя до файлов?


Ответы (3 шт):

Автор решения: MaxU

Воспользуйтесь стандартным модулем pathlib:

from pathlib import Path

p = Path("D:/")
for x in p.rglob("*"):
    print(x)

→ Ссылка
Автор решения: passant

Алгоритмы обхода дерева в универе учили? Вот и примените его на практике. Это он и есть, в чистом виде. Надеюсь, как просмотреть все файлы в одном каталоге вы знаете (по крайней мере - этого вы не спрашивали). Подсказки: 1) в самом каталоге всегда есть два специальных файла, с именами "." и ".." указывающими на сам каталог и на его родителя (для облегчения обхода дерева). 2) Каталог - есть специальный вид файла.

→ Ссылка
Автор решения: Mais Studio

Используя рекурсию:

import os

class ListPath:
    def __init__(self) -> None:
        self.ls = []

    def walk_file(self, path = 'D:\\') -> list:    
        for i in os.listdir(path):
            if os.path.isdir(f'{path}\{i}'):
                print(f'Переходим в папку: {i}')
                self.walk_file(f'{path}\{i}')
            else:
                self.ls.append(f'{path}\{i}')

        return self.ls

make_ls = ListPath()
for el in make_ls.walk_file():
    print(el)
→ Ссылка