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打开…如果您一直在阅读它,并且仍然有文件句柄,它可能仍然处于打开状态。