Python:无法保存文件/ Windows错误32

时间:2015-05-12 06:00:26

标签: python operating-system wxpython

我写了一个函数,当我的程序完成它的工作时调用它。

def allDone(self, event):
    dlg = wx.MessageBox("All done!", "Ask Alfred", wx.OK | wx.ICON_INFORMATION)
    os.unlink(self.fpath)
    os.rename(self.temp, self.fpath)
    self.pathBox.Clear()

然而,它没有按预期工作。它应该删除原始文件,然后将临时文件重命名为原始文件路径。

相反,它只执行unlink,删除self.fpath中的文件。

我得到的确切错误是:

File "G:/AskNorbert/finder.py", line 151, in allDone
os.rename(self.temp, self.fpath)
WindowsError: [Error 32] The process cannot access the file because it is being used by another process

1 个答案:

答案 0 :(得分:0)

在尝试重命名之前,确认确定您已在临时文件上调用flush()然后调用close(),以确保您没有锁定它。

同样值得调用time.sleep(0.2),让操作系统有时间在close之后和rename之前完成任务。