我有以下代码:
os.remove('_Temp_Dir_\main' + str(i) + '.exe')
os.rmdir('_Temp_Dir_')
这给了我:
OSError: [WinError 145] Directory is not empty: '_Temp_Dir_'
如果我把线
time.sleep(0.05)
之前os.rmdir()
,它工作正常。我认为os.remove()
删除文件的速度不够快。有什么方法可以等待它完成工作吗?
用于shutil.rmtree()
删除目录,不用担心删除文件:
import shutil
shutil.rmtree('_Temp_Dir_')
工作正常(在os.remove()
文件删除完成之前它不会返回),该目录中必须有其他文件,该进程留下并在您的sleep()
调用期间被删除。
os.remove()` 是同步操作;当它返回时,文件肯定已经消失了(当然,除非它抛出错误)。
你看到的效果很多是别的东西。我可以想象这些效果:
要了解发生了什么,我建议在删除之前os.listdir()
使用文件夹并在失败时打印结果。列表中的名称可能会让您了解发生了什么。os.rmdir()