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

问题描述:

我写了一个函数,当我的程序完成它的工作时被调用。Python:无法保存文件/ Windows错误32

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 
+0

检查临时文件没有在你的程序 –

试图将其重命名,以确保不会将其锁定之前,请务必你已经叫flush()然后close()上的临时文件。

还值得调用time.sleep(0.2),给操作系统的时间来完成任何它是干什么的,在close之后和之前rename

+0

的iget关闭现在这个错误,当我尝试os.close:os.close(self.temp) 类型错误:一个整数需要 – ohbrobig

+0

文件不应该是“开放” 。它只能通过xlutils函数访问......它不是通过excel打开的...... – ohbrobig

+0

如果你一直在阅读它并仍然有文件句柄,它可能仍然是打开的。 –