繁体   English   中英

错误32:无法在Python脚本中重命名文件

[英]Error 32: Can't rename file in Python Script

这是我的错误:

WindowsError: [Error 32] The process cannot access the file because it is being used by another process

当它完成长时间运行的过程时,我从工作线程中调用以下函数。 它会停止线程,然后在显示对话框并重命名文件之前给它10秒钟的时间。 “ Unlocker”表明该文件仅在Python.exe中打开。

 def allDone(self, event):
    myClass.worker.stop()
    for i in range(0,10):
        time.sleep(1)
        print(i)
    dlg = wx.MessageBox("All done!", "Ask Alfred", wx.OK | wx.ICON_INFORMATION)
    os.rename(self.tempf, self.tempf+"123.xls")
    self.Destroy()

该文件通过以下工作线程中的xlrd方法在代码中打开:

rbook=xlrd.open_workbook(self.file)
sheet = rbook.sheet_by_index(0)
wbook = copy(rbook)

在移动文件之前,需要在所有进程中关闭该文件,甚至是“ Python.exe”。

这个问题似乎需要让此xlrd对象超出范围,以便在尝试移动和重命名文件之前将其单独关闭。

如果线程中具有对该文件的引用,则应尝试将变量设置为“ None以便在处理完成时删除对文件对象的引用。 希望能解决您的问题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM