os.walk:
import os
def find_empty_dirs(root_dir='.'):
for dirpath, dirs, files in os.walk(root_dir):
if not dirs and not files:
yield dirpath
print list(find_empty_dirs())
, topdown=False , , - .
, , find . -type d -empty.
, , , find . -type d -empty -delete , , . os.walk , topdown=False.
, , :
import os
def recursive_delete_if_empty(path):
"""Recursively delete empty directories; return True
if everything was deleted."""
if not os.path.isdir(path):
return False
if all([recursive_delete_if_empty(os.path.join(path, filename))
for filename in os.listdir(path)]):
os.rmdir(path)
return True
else:
return False