os.walk
and os.scandir
are great options, however, I’ve been using pathlib more and more, and with pathlib you can use the .glob()
or .rglob()
(recursive glob) methods:
root_directory = Path(".")
for path_object in root_directory.rglob('*'):
if path_object.is_file():
print(f"hi, I'm a file: {path_object}")
elif path_object.is_dir():
print(f"hi, I'm a dir: {path_object}")