在Python中删除大量文件
我想要删除一个文件夹里的所有文件。关于这个问题,在Python中删除文件夹内容的推荐答案提到,可以先获取所有文件的列表,然后在一个循环中对每个文件调用“unlink”来删除它们。
假设我在一个网络共享上有成千上万的文件,我希望尽可能缩短占用这个文件夹的时间。
那么,使用像 rm -f /path/*
这样的命令来一次性删除所有文件,还是使用 shutils.rmtree
之类的方法更有效呢?
2 个回答
-1
我试了这个解决方案,感觉效果不错:
while os.path.exists(file_to_delete):
os.remove(file_to_delete)
10
如果你真的想删除整个目录及其所有内容,使用 shutils.rmtree
会比 os.remove
(其实和 os.unlink
是一样的)更快。它还允许你指定一个回调函数来处理错误。
@nmichaels 在评论中的建议也不错,你可以先用 os.rename
重命名这个目录,然后在原来的位置创建一个新目录,再对原来的、重命名后的目录使用 shutils.rmtree
。