我有一个多层目录。我想从最低级别的目录开始,删除所有空目录。我当前的代码不会删除子目录全部删除后变空的高级目录,因为os.walk应该不会更新路径?我应该如何修改它,使它每次都更新root
?
for root, dirs, files in os.walk(starting_directory, topdown=False):
if not files and not dirs:
shutil.rmtree(root)
这个脚本将完成这项工作。转到目录树的最底部。。。目录是空的吗?对然后删除并从那里上升。非常适合清理空文件夹。
#!/usr/bin/python
"""
*
* This python script removes empty directories using a bottom-up approach.
* It can be run from your present directory and it will remove all directories that are
* completely empty - working from the lowest levels -- up to your present directory.
"""
import os
for root, dirs, files in os.walk(".", topdown=False):
for name in files:
print(os.path.join(root, name))
for name in dirs:
print("...in for name in dirs", name)
print(os.path.join(root, name))
if len(os.listdir(os.path.join(root, name))) == 0:
print("Directory is empty... deleting")
os.rmdir(os.path.join(root, name))
else:
print("Directory is not empty")