我正在尝试使用 Python 3 创建一个函数来删除指定目录中的空目录。不幸的是,我的尝试没有成功,所以我非常感谢任何帮助、指导和建议。我试图让该函数执行的操作的示例:前...-folder/ |-empty1/ |-empty2/ |-not_empty1/ |-file |-not_empty2/ |-file后...-folder/ |-not_empty1/ |-file |-not_empty2/ |-file这是我确信会起作用但没有起作用的:# folder - absolute path to directory that may contain empty directoriesdef cleanup(folder): from os import listdir, rmdir, path ls = listdir(folder) ls = map(lambda f: path.join(folder, f), ls) folders = filter(lambda f: path.isdir(f), ls) map(lambda x: rmdir(x), folders)谢谢!编辑:删除了第一个映射末尾的额外括号,用于使用语句list(map(...))进行调试print已移至path.join()上方行path.isdir()将问题的标题从“...FP 风格的 Python 3”更改为,因为正如评论中指出的那样,这不是 FP 的正确实现和应用。
1 回答
子衿沉夜
TA贡献1828条经验 获得超3个赞
os.rmdir只删除空目录,因此在正确且最小的实现中,在功能风格中没有什么可做的:
import errno
import os
def cleanup(folder):
for name in os.listdir(folder):
try:
os.rmdir(os.path.join(folder, name))
except OSError as e:
if e.errno != errno.ENOTEMPTY:
raise
添加回答
举报
0/150
提交
取消