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

Python:Can';无法保存文件/Windows错误32,python,operating-system,wxpython,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() 然而,它并没有像预期的那样工作。它应该删除原始文件,然后将

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

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()
然而,它并没有像预期的那样工作。它应该删除原始文件,然后将临时文件重命名为原始文件路径

相反,它只是执行取消链接,删除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

在尝试重命名临时文件之前,确保已对其调用了
flush()
,然后调用了
close()
,以确保未锁定它


还值得调用
time.sleep(0.2)
,以便在
close
之后和
rename

之前,让操作系统有时间完成它正在做的任何事情。请检查您的程序中是否未关闭临时文件。现在,当我尝试操作系统时,请设置此错误。close:OS.close(self.temp)TypeError:需要整数。文件不应“打开”。它只能通过xlutils函数访问…它不能通过excel打开…如果您一直在阅读它,并且仍然有文件句柄,它可能仍然处于打开状态。