我有一个使用pathlib
的项目,我想做与shutil.rmtree
等效的项目。
我想用类似的方法做到这一点
def pathlib_rmtree(folder):
if folder.exists():
for file in folder.glob('**/*'):
if file.is_dir():
file.rmdir()
else:
file.unlink()
folder.rmdir()
但是我不确定是否保证folder.glob('**/*')
是有序的,以便在调用rmdir
之前所有子文件夹都为空。
所以问题是双重的:
pathlib
递归删除目录?glob
是否保证其结果的顺序,以便所有文件都在它们所属的子文件夹之前返回?答案 0 :(得分:0)
实际上,这可以使用iterdir
而不是glob
完成:
def rmtree(root):
for p in root.iterdir():
if p.is_dir():
rmtree(p)
else:
p.unlink()
root.rmdir()