我目前正在使用Python(以及一些Cython模块)创建的软件遇到一个奇怪的错误。我在Windows 64位运行它,但使用32位Python。
程序的一部分涉及下载大量数据(最多几千兆字节),然后继续处理数据。该软件已经相对稳定了一段时间,但我们刚刚推出了一个新的数据源,大大增加了下载的数据量。我相信这是bug开始发生的时候。一遍又一遍地运行完全相同的测试用例,我在似乎是随机的地方得到错误。以下是我目前看到的两条错误消息:
IOError:[Errno 13]权限被拒绝:“[filename]”
和
WindowsError:[错误32]进程无法访问该文件,因为另一个进程正在使用该文件:“[filename]”
如果需要,我会提供更多信息。同样,我最近才看到这个错误引入了一个新的数据源,所以我认为它与数据量有关。有人知道会导致这种情况吗?
谢谢!
编辑:为了澄清,我想知道这可能是Windows /大文件的问题,因为它只会崩溃这个新的大数据量似乎对我来说是可疑的。
答案 0 :(得分:0)
由于错误消息表明它可能正在锁定文件。使用Process Monitor工具,您可以监视是否有其他进程同时尝试使用该文件。
如果不是这种情况,您需要添加更多关于您的问题的信息,作为完整的错误消息以及代码崩溃的部分。
<强>更新强>
我认为解决方案是以独占模式打开文件,带锁.. 检查出来了:
portalocker - Cross-platform (posix/nt) API for flock-style file locking.