gpt4 book ai didi

python - 如何在 Python3 中递归删除空文件夹?

转载 作者:太空宇宙 更新时间:2023-11-03 14:23:46 24 4
gpt4 key购买 nike

我正在尝试删除目录的空文件夹。

def remove_empty_dir(path):
try:
os.rmdir(path)
except OSError:
pass

def remove_empty_dirs(path):
for root, dirnames, filenames in os.walk(path):
for dirname in dirnames:
remove_empty_dir(os.path.realpath(os.path.join(root, dirname)))

remove_empty_dirs(path)

我也尝试过:

import shutil
shutil.rmtree(path)

但这会删除所有内容,甚至是那些包含内容的文件夹。问题是我需要从内到外这样做,如果我有:

root_folder
child_folder1
grandchild_folder1.1 (empty)
child_folder2
granchild_folder2.1
granchild_folder2.2 (empty)

程序应该删除 grandchild_folder1.1、child_folder1 和 child_folder2.2,但不删除其余部分。

最佳答案

os.walk接受可选的 topdown 参数(默认值:True)。

通过提供 topdown=False,您可以先从子目录迭代。

def remove_empty_dirs(path):
for root, dirnames, filenames in os.walk(path, topdown=False):
for dirname in dirnames:
remove_empty_dir(os.path.realpath(os.path.join(root, dirname)))

关于python - 如何在 Python3 中递归删除空文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23488924/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com