我正在尝试删除一个目录中的所有文件。《Python中删除文件夹内容》(Delete Folder Contents in Python) 的最佳答案建议获取所有文件的列表并在循环中调用“unlink”。
假设我在网络共享中有数千个文件,并希望将目录绑定时间尽可能短。
使用类似rm -f /path/*
这样的shell命令,还是使用shutils.rmtree
等工具更有效率?
我正在尝试删除一个目录中的所有文件。《Python中删除文件夹内容》(Delete Folder Contents in Python) 的最佳答案建议获取所有文件的列表并在循环中调用“unlink”。
假设我在网络共享中有数千个文件,并希望将目录绑定时间尽可能短。
使用类似rm -f /path/*
这样的shell命令,还是使用shutils.rmtree
等工具更有效率?
shutils.rmtree
比使用 os.remove
(相当于 os.unlink
)更快。它还允许你指定一个回调函数来处理错误。os.rename
重命名目录,然后在原位置创建一个新的目录,并对原始重命名目录使用shutils.rmtree
。rmtree
可以做到。他接受了我的答案,所以我们必须假设我满足了他的意图。 - agf我尝试了这个解决方案,看起来效果不错:
while os.path.exists(file_to_delete):
os.remove(file_to_delete)
os.rename
移动是超级快的。 - agfmv: cannot overwrite non-directory
/dev/null' with directorydeleteme/'
。 - nmichaels