有没有办法等待os.remove()完成?我有一个脚本,每天制作一些png图片并先删除旧图片,这样制作的图片实际上是旧图片中的更新图片。
问题是 - 我猜 - os.remove()没有足够的时间来完成,因为正在制作的文件与被删除的文件完全相同。但是如果我在os.remove()之后放了一个time.sleep(5)就行了。
代码是这样的
...some imports
for root, dirs, files in os.walk(trgt_folder):
[os.remove(os.path.join(root, file)) for file in files if 'png' in file]
make_and_save_newpics(trgt_folder)
答案 0 :(得分:0)
如果你覆盖同一个文件,我会建议一个更好的解决方案,而不是给出time.sleep(5),为什么不检查文件是否存在,然后再次删除文件保存:
import os
# put this check before file save operation
if os.path.isfile(filepath):
os.remove(os.path.join(root, file))
# save new pic after this
make_and_save_newpics(trgt_folder)
如果时间是约束,会有更好的方法,time.sleep(5)不是一个好方法
答案 1 :(得分:0)
如果您想等待os.remove()的完成,我建议您使用线程。 在线程中调用os.remove()并等待它完成。