Python中如何检测文件夹为空并自动删除
我用os.listdir(directory)==[]判断文件夹是否为空,然后再删除
但是当 directory 下文件很多时,效率很低
Python 怎样高效的删除空文件夹
Python中如何检测文件夹为空并自动删除
3 回复
import os
import shutil
def delete_empty_folders(folder_path):
"""
递归删除指定路径下的所有空文件夹
"""
if not os.path.isdir(folder_path):
print(f"路径不存在或不是文件夹: {folder_path}")
return
# 递归处理子文件夹
for item in os.listdir(folder_path):
item_path = os.path.join(folder_path, item)
if os.path.isdir(item_path):
delete_empty_folders(item_path)
# 检查当前文件夹是否为空
if not os.listdir(folder_path):
try:
os.rmdir(folder_path)
print(f"已删除空文件夹: {folder_path}")
except OSError as e:
print(f"删除失败 {folder_path}: {e}")
# 使用示例
if __name__ == "__main__":
target_folder = "/path/to/your/folder" # 替换为你的目标路径
delete_empty_folders(target_folder)
这个函数会递归遍历文件夹,自底向上删除所有空文件夹。关键点:
- 用
os.listdir()检查文件夹内容 - 递归处理确保先删除深层空文件夹
- 使用
os.rmdir()删除空文件夹(只能删除空文件夹)
如果你只想检查单个文件夹是否为空而不递归,用这个:
def is_folder_empty(folder_path):
return os.path.isdir(folder_path) and not os.listdir(folder_path)
总结:用递归遍历+os.listdir判断。
Python 文件操作相关问题 :www.revotu.com/python-file-operation-related-issues.htmlPython<br>try:<br> os.rmdir(directory)<br>except OSError:<br> pass<br>
os.rmdir()
os.removedirs()
大概能满足你的要求,不过你最好看一下官方文档对这 2 个函数的解释,否则出事了别找我

