首页 > 解决方案 > PathLib递归删除目录?

问题描述

有什么方法可以删除 PathLib 模块中的目录及其内容?path.unlink()它只删除一个文件,目录path.rmdir()必须为空。有没有办法在一个函数调用中做到这一点?

标签: pythondirectorypathlib

解决方案


如您所知,删除文件/目录的唯一两种Path方法是您想要的.unlink().rmdir()也不是您想要的。

Pathlib 是一个提供跨不同操作系统的面向对象路径的模块,它并不意味着有很多不同的方法。

这个库的目的是提供一个简单的类层次结构来处理文件系统路径和用户对其进行的常见操作。

“不常见”的文件系统更改,例如递归删除目录,存储在不同的模块中。如果要递归删除目录,则应使用该shutil模块。(它也适用于Path实例!)

import shutil
import pathlib
import os  # for checking results

print(os.listdir())
# ["a_directory", "foo.py", ...]

path = pathlib.Path("a_directory")

shutil.rmtree(path)
print(os.listdir())
# ["foo.py", ...]

推荐阅读