Как я могу пройти по всем файлам в папке?
Есть заданный путь, допустим, диск 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)