Recursively iterate through all subdirectories using pathlib

Solution 1:

Use Path.rglob (substitutes the leading ** in Path().glob("**/*")):

path = Path("docs")
for p in path.rglob("*"):
     print(p.name)

Solution 2:

You can use the glob method of a Path object:

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

Solution 3:

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.