这批FOR命令如何转换为python?

时间:2019-05-02 16:32:44

标签: python python-3.x batch-file shutil

我一直试图弄清楚如何将这个简单的批处理代码(删除树中的每个空目录)转换为python,这使我花费了不合理的时间。我恳请提供详细解释的解决方案,我相信它会迅速启动我对该语言的理解。我有放弃的危险。

for /d /r %%u in (*) do rmdir "%%u"

我确实要修复我的怪异版本,这肯定是各种各样的错误。如果合适,我希望使用shutil模块。

for dirpath in os.walk("D:\\SOURCE")
    os.rmdir(dirpath)

1 个答案:

答案 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