How can I use pathlib to recursively iterate over all subdirectories of a given directory?
p = Path('docs')
for child in p.iterdir(): child
only seems to iterate over the immediate children of a given directory.
I know this is possible with os.walk()
or glob
, but I want to use pathlib because I like working with the path objects.
You can use the glob
method of a Path
object:
p = Path('docs')
for i in p.glob('**/*'):
print(i.name)
Use Path.rglob
(substitutes the leading **
in Path().glob("**/*")
):
path = Path("docs")
for p in path.rglob("*"):
print(p.name)
pathlib
has glob
method where we can provide pattern as an argument.
For example : Path('abc').glob('**/*.txt')
- It will look for current folder abc
and all other subdirectories recursively to locate all txt
files.