有没有办法删除PathLib模块中的目录及其内容?对于path.unlink(),它只删除一个文件,对于path.rmdir(),目录必须是空的。没有办法在一个函数调用中完成它吗?
发布于 2018-05-05 08:01:43
正如您已经知道的,删除文件/目录的唯一两个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", ...]发布于 2019-10-01 11:25:27
下面是一个纯路径库实现:
from pathlib import Path
def rm_tree(pth):
pth = Path(pth)
for child in pth.glob('*'):
if child.is_file():
child.unlink()
else:
rm_tree(child)
pth.rmdir()发布于 2019-09-11 15:14:33
否则,如果您只想要pathlib,可以尝试此方法。
from pathlib import Path
def rm_tree(pth: Path):
for child in pth.iterdir():
if child.is_file():
child.unlink()
else:
rm_tree(child)
pth.rmdir()
rm_tree(your_path)https://stackoverflow.com/questions/50186904
复制相似问题