文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

如何解决python 使用openpyxl读写大文件的问题

2023-06-14 04:49

关注

这篇文章主要讲解了“如何解决python 使用openpyxl读写大文件的问题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何解决python 使用openpyxl读写大文件的问题”吧!

由于需要处理xlsx类型的文件,我使用了openpyxl来处理,然而文件比较大,大约有60多MB。读文件的时候虽然慢了一点,但还是能够读出来,但是当我想写入时却报错了。

如何解决python 使用openpyxl读写大文件的问题

显示设备没有多余的空间,百度了一下,发现有不少关于openpyxl读写大文件的问题。总结来看,解决方案主要有以下两种,当然,我两种都用上了。

手动释放内存

del wb, wsgc.collect()

这一招还算有用,在读完文件后可以看到内存占用明显下降了一点。

安装lxml

使用命令·pip install lxml安装依赖

这个依赖并非必须安装的依赖,但是可以使openpyxl流式处理数据。

总之使用了以上两种方案后,终于可以成功处理数据了。

补充:openpyxl读取大文件的若干问题

需要编写一个EXCEL文件对比工具

excel文件通常8MB,300张左右的表,每张表实际范围为ZZ500.

使用openpyxl对表格进行遍历,完成两个表之间的对比,找出公式不相同的单元格编程中遇到若干问题

1、读取时报错,错误代码忘记了,原因是通过数组的方式读取了一个不存在的数值

如 SS['AA'],这个数值没有定义,因此报错(PHP直接返回空值),使用SS.get('AA',null)进行修改

D:\Python34\Lib\site-packages\openpyxl\reader\style.py

164: format_code = builtin_formats.get(numFmtId,'General')

2、读取时内存占用过大

基本就是内存占用了2G以上以后,程序就不动了,原因是某些表格的表格范围识别的非常大,最大可为ZZ65535

通过研究,代码进行了如下修改

使用X64版本,X64版本在运行时,可以运行4G以内内存占用的程序,比2G大一倍,能够完成大部分表格的读取,如ZZ5000,但是遇到ZZ65535范围的表格,内存占用达到了4G+,也会导致程序停止运行.

限制最大单元格遍历范围,最大限制为ZZ5000,能够有效降低内存占用

定时重新读取EXCEL文件(如每对比30张表),释放内存,(Python内存释放真的很痛苦,全部是指针引用,A=B,DEL A;是不会释放空间的,要DEL B才行).

虽然openpyxl读取文件时有个只读模式(性能模式),但是速度实在是太慢了.

通过代码修改,现在完成文件对比所用的内存通常在2G以内

感谢各位的阅读,以上就是“如何解决python 使用openpyxl读写大文件的问题”的内容了,经过本文的学习后,相信大家对如何解决python 使用openpyxl读写大文件的问题这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯