我正在尝试在读取文件后删除它,但出现了"WindowsError: [Error 32] The process cannot access the file because it is being used by another process"的错误。
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: 我是个笨蛋。 我在对象初始化中打开了文件 当我测试将“remove”移到脚本顶部时,我应该将它放在顶部,而不是在创建对象之后
对不起浪费您的时间,我整个周末都在做要到明天交的东西,当它不能运行时我有些慌了。
os.remove("c:\file\file.txt")
应该改为os.remove(r"c:\file\file.txt")
或os.remove("c:\\file\\file.txt")
或os.remove("c:/file/file.txt")
。 - John Machin