我一直试图弄清楚如何将这个简单的批处理代码(删除树中的每个空目录)转换为python,这使我花费了不合理的时间。我恳请提供详细解释的解决方案,我相信它会迅速启动我对该语言的理解。我有放弃的危险。
for /d /r %%u in (*) do rmdir "%%u"
我确实要修复我的怪异版本,这肯定是各种各样的错误。如果合适,我希望使用shutil
模块。
for dirpath in os.walk("D:\\SOURCE")
os.rmdir(dirpath)
答案 0 :(得分:2)
如果您只想删除空目录,则pathlib.Path(..).glob(..)将起作用:
import os
from pathlib import Path
emptydirs = [d for d in Path('.').glob('**/*') # go through everything under '.'
if d.is_dir() and not os.listdir(str(d))] # include only directories without contents
for empty in emptydirs: # iterate over all found empty directories
os.rmdir(empty) # .. and remove
如果要删除目录下的所有内容,则shutil.rmtree(..)
函数可以在一行中完成它:
import shutil
shutil.rmtree('.')
检查文档以获取所有详细信息(https://docs.python.org/2/library/shutil.html#shutil.rmtree)