Рекурсивно перебирать все подкаталоги, используя pathlib - PullRequest
0 голосов
/ 06 июня 2018

Как я могу использовать pathlib для рекурсивной итерации по всем подкаталогам данного каталога?

p = Path('docs')
for child in p.iterdir(): child

, кажется, выполняет итерации только по непосредственным дочерним элементам данного каталога.

Я знаю, что это возможно с os.walk() или glob, но я хочу использовать pathlib, потому что мне нравится работать с объектами пути.

Ответы [ 3 ]

0 голосов
/ 06 июня 2018

pathlib имеет метод glob, в котором мы можем предоставить шаблон в качестве аргумента.

Например: Path('abc').glob('**/*.txt') - будет рекурсивно искать текущую папку abc и все другие подкаталоги, чтобы найти все txt файлы.

0 голосов
/ 05 января 2019

Использование Path.rglob (заменяет ведущий ** в Path().glob("**/*")):

path = Path("docs")
for p in path.rglob("*"):
     print(p.name)
0 голосов
/ 06 июня 2018

Вы можете использовать метод glob объекта Path:

p = Path('docs')
for i in p.glob('**/*'):
     print(i.name)
...