我在理解 Python 调试器中奇怪的文件锁定行为时遇到了问题。
我有一个 2TB 的图像文件,我的脚本会读取它。一切都很完美,直到我想用不同的十六进制编辑器读取同一个文件。如果在我开始我的脚本之前在十六进制编辑器中打开文件,一切都很好。如果我在脚本在断点处暂停期间尝试打开文件,我的系统几乎挂起并且变得非常慢。我通常可以从终端杀死 Pyhon 和十六进制编辑器,但它非常慢,最多需要 10 分钟。
在我停止脚本甚至广泛杀死所有 Python 实例之后,同样的问题出现了。此映像所在的磁盘保持锁定状态,无法卸载它(仅使用 diskutil force 命令),如果我尝试在其他任何地方打开文件,系统将挂起。
我也不能一个接一个地启动脚本,下一个脚本只是停止工作并挂起我的系统。
我必须等待最多 10 分钟才能再次使用该文件。
我试图找到使用“sudo lsof +D”命令锁定文件的进程,但它没有列出任何内容。
以下是更多细节: — 我的系统是 Mac Os X 10.9。Python是3.4。我使用 Eclipse 和 Pydev 来开发脚本。— 我使用 open('image.dmg', mode='rb') 命令在 python 中打开文件并使用 close() 关闭它。— 该文件是外部 ExFat 格式化驱动器上的 2TB 磁盘映像。其他文件没有这样的问题。文件在 Finder 设置中被写保护。
谁能指导我正确的方向来找到这个问题的根源?