Ответ 1
Вы можете использовать метод glob
объекта Path
:
p = Path('docs')
for i in p.glob('**/*'):
print(i.name)
Как я могу использовать pathlib для рекурсивной итерации по всем подкаталогам данного каталога?
p = Path('docs')
for child in p.iterdir(): child
только кажется, что перебирает непосредственных потомков данного каталога.
Я знаю, что это возможно с os.walk()
или glob
, но я хочу использовать pathlib, потому что мне нравится работать с объектами path.
Вы можете использовать метод glob
объекта Path
:
p = Path('docs')
for i in p.glob('**/*'):
print(i.name)
Используйте Path.rglob
(заменяет ведущий **
в Path().glob("**/*")
):
path = Path("docs")
for p in path.rglob("*"):
print(p.name)
pathlib
имеет метод glob
где мы можем предоставить шаблон в качестве аргумента.
Например: Path('abc').glob('**/*.txt')
- он будет искать текущую папку abc
и все другие подкаталоги рекурсивно, чтобы найти все txt
файлы.