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.
Use Path.rglob (substitutes the leading ** in Path().glob("**/*")):
path = Path("docs")
for p in path.rglob("*"):
print(p.name)
You can use the glob method of a Path object:
p = Path('docs')
for i in p.glob('**/*'):
print(i.name)
To find just folders the right glob string is:
'**/'
So to find all the paths for all the folders in your path do this:
p = Path('docs')
for child in p.glob('**/'):
print(child)
If you just want the folder names without the paths then print the name of the folder like so:
p = Path('docs')
for child in p.glob('**/'):
print(child.name)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With