说明
《Python 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
(编码题)编写一段 Python 代码,删除指定目录的空文件夹。
使用 pathlib
库可以更简洁地处理文件路径。下面是一个使用 pathlib
库递归删除空文件夹的 Python 代码:
from pathlib import Path
def remove_empty_dirs(directory):
# 遍历目录及其子目录
for path in sorted(Path(directory).rglob('*'), reverse=True):
if path.is_dir() and not any(path.iterdir()):
print(f"Removing empty directory: {path}")
path.rmdir()
# 示例调用
directory = '/path/to/your/directory'
remove_empty_dirs(directory)
说明:
Path(directory).rglob('*')
:使用 rglob('*')
方法递归遍历所有目录和文件。sorted(..., reverse=True)
:确保从子目录到父目录(由内到外)删除空文件夹。path.iterdir()
:检查目录是否为空。如果为空,则使用 rmdir()
删除目录。这样做可以简化目录操作,避免直接使用 os
库的复杂性。
下面是一段 Python 代码,用于递归删除指定目录中的空文件夹:
import os
def remove_empty_dirs(directory):
# 遍历目录及其子目录
for dirpath, dirnames, filenames in os.walk(directory, topdown=False):
# 如果文件夹为空
if not os.listdir(dirpath):
print(f"Removing empty directory: {dirpath}")
os.rmdir(dirpath)
# 示例调用
directory = '/path/to/your/directory'
remove_empty_dirs(directory)
说明:
os.walk(directory, topdown=False)
:该方法遍历目录,topdown=False
表示从子目录开始遍历(由内到外)。os.listdir(dirpath)
:检查目录是否为空。如果为空,则删除该目录。os.rmdir(dirpath)
:删除空目录。你可以将 directory
变量替换为你想要删除空文件夹的目录路径。
查看相关链接中的知识。
(完)
更新时间:2024-10-11 17:16:34 标签:python 习题 目录