打破读取操作后openpyxl关闭存档,因为最大行数为1048498行

时间:2015-06-27 02:37:12

标签: python-3.x openpyxl p4python

我使用openpyxl

时遇到两个问题
  1. 电子表格中的行数是1048498.迭代占用了内存,所以我放了一个逻辑来检查前五个空列并从中断

  2. 逻辑1适用于我,代码不会无限期地迭代电子表格空白单元格。我读完之后,我正在使用P4Python来删除这个只读文件。但是,openpyxl仍在使用该文件,除了保存以外,没有任何方法可以关闭内部使用的存档。由于我的文件处于只读模式,我无法保存文件。当P4尝试删除此文件时,我收到此错误 - "该进程无法访问该文件,因为它正由另一个进程使用。"

  3. 帮助表示赞赏:)

2 个答案:

答案 0 :(得分:0)

如果以只读模式打开文件,则不会占用内存。仅在读取时创建单元格。已经使用大文件测试了内存使用情况,但如果您认为这是一个错误,请提交包含示例文件的错误报告。

答案 1 :(得分:0)

这看起来像是openpyxl的现有问题或预期的行为。如果您有一个只读文件(P4Python同步操作 - p4.run_sync(file_path_to_sync)),如果您使用openpyxl读取它,您将无法删除该文件(P4Python p4.run_sync(file_path_to_sync + '#0') - 从工作区删除)直到您保存文件是不可能的(或者在我的情况下是预期的),因为它是一个只读文件。