我试图在读取文件后删除文件,但收到“WindowsError: [Error 32] 该进程无法访问该文件,因为它正被另一个进程使用”
file = open(self.filePath)
for line in file:
#do things
file.close()
os.remove(self.filePath) #throws error
os.rename(self.filePath, self.filePath + "old") #throws same error
有什么想法吗??
谢谢!
更新: 我刚刚重新启动了我的 (windows 7) 框,启动了 eclipse,将 os.remove("c:\file\file.txt") 移动到我的脚本的第一行,运行并得到了同样的错误。
更新 2: 我使用 Windows 资源管理器导航到该文件.. 第一次我无法删除它,它被“系统”使用。第二次尝试删除效果很好。该文件不再存在。现在当我跑 os.remove("c:\file\file.txt") WindowsError: [错误 32] 该进程无法访问该文件,因为它正被另一个进程使用:'c:\file\file.txt' 然后我查看 Windows 资源管理器,文件又回来了,是空的。我可以在资源管理器中删除,然后当我运行要删除的脚本时,它会抛出错误(并创建空文件)。知道这里会发生什么吗?
更新 3: 我是一个白痴。 我在对象的初始化中打开文件 当我通过将“删除”移动到脚本顶部进行测试时,我应该把它放在顶部,而不是在创建我的对象之后
抱歉占用您的时间,我整个周末都在做明天到期的事情,当它无法运行时我很 panic
最佳答案
另一种可能性是当您尝试删除或重命名文件时,病毒检查程序仍然打开该文件。这种情况不常发生,但一旦发生,追踪起来真的很烦人。
关于python 关闭后无法删除文件, "being used by another process",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1856718/