Python os.walk:如何在其子目录全部删除后删除目录



我有一个多层目录。我想从最低级别的目录开始,删除所有空目录。我当前的代码不会删除子目录全部删除后变空的高级目录,因为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")

最新更新