删除空文件夹 (Python)

新手上路,请多包涵

这是文件夹树:

 FOLDER\\
       \\1\\file
       \\2\\file
       \\3\\
       \\4\\file

该脚本应扫描(循环)FOLDER 中的每个文件夹并检查子文件夹是否为空。如果是,则必须将其删除。

到目前为止,我的代码是这样的:

 folders = ([x[0] for x in os.walk(os.path.expanduser('~\\Desktop\\FOLDER\\DIGITS\\'))])
folders2= (folders[1:])

此扫描文件夹并使用 folders2DIGITS 中的第一个文件夹开始。在 DIGITS 中有编号的目录:1、2、3、4 等

怎么办?尝试使用 os.rmdir 但它给了我一个关于字符串的错误。事实上, folders2 是一个列表,不是字符串,只是说…

原文由 BlueTrack 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 481
2 个回答

不确定你会得到什么样的错误,这对我来说非常有用:

 import os

root = 'FOLDER'
folders = list(os.walk(root))[1:]

for folder in folders:
    # folder example: ('FOLDER/3', [], ['file'])
    if not folder[2]:
        os.rmdir(folder[0])

原文由 taras 发布,翻译遵循 CC BY-SA 4.0 许可协议

您可以使用以下代码段删除所有空文件夹和子文件夹。

 import os

def remove_empty_folders(path_abs):
    walk = list(os.walk(path_abs))
    for path, _, _ in walk[::-1]:
        if len(os.listdir(path)) == 0:
            os.remove(path)

if __name__ == '__main__':
    remove_empty_folders("your-path")

原文由 Iván B. 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题