有没有办法等待os.remove()完成?

有没有办法等待os.remove()完成? 我有一个脚本,每天都会制作一些png图片,先删除旧图片,这样制作的图片才是真正的旧图片。

问题是 – 我猜 – os.remove()没有足够的时间来完成,因为正在创build的文件与删除的文件非常相似。 但是,如果我在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) 

如果覆盖同一文件,我会推荐一个更好的解决方案,而不是给一个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)不是一个好的方法

如果你想等待完成os.remove(),我建议你使用线程。 在一个线程中调用os.remove()并等待它完成。