鱼C论坛

 找回密码
 立即注册
查看: 2415|回复: 7

[技术交流] python超过4G的文件怎样打印到打印机

[复制链接]
发表于 2021-11-14 13:57:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
大家好,最近遇到个问题,发现大于3.99G的16进制文件,也就是大于4G的16进制文件在发送到打印机的这一步提示内存错误,请问各位有没有什么办法解决呢?目前小于等于3.99G的文件我可以正常查找修改替换操作并打印到打印机,就这超过4G的文件让人头疼,希望有高手能解决
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-11-14 14:57:12 | 显示全部楼层
        4 GB 是 32 位内存可寻址的极限。如果超过,自然会有问题。
        在 Linux 下,有一系列函数,是专门应对超过 4 GB 大文件的,对于 Python 而言,解决方案是不要一次就读取整个文件内容,应该按一个相对固定的大小分多次进行读取。
        难道这个二进制文件不按记录存放吗,如果是按记录存放,那就可以按每次读取一个记录,循环读取,直到文件结束。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-14 17:57:37 | 显示全部楼层
jackz007 发表于 2021-11-14 14:57
4 GB 是 32 位内存可寻址的极限。如果超过,自然会有问题。
        在 Linux 下,有一系列函数, ...

我的python是64位的,目前4G的大文件我直接读入后修改替换再写出到文件这一系列动作都可以,只是占用内存很大,但还是能正常写出到文件,但是我要将超过4G的文件不写出文件而是直接将修改后的数据直接发送到打印机就会出现内存错误,至于你说的逐行读取写出我也试过,它写到文件倒是可以追加到一个文件,但是要逐行打印到打印机它就成多个打印任务了,如果你可以的话麻烦给个例子可以吗?谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-14 18:45:49 | 显示全部楼层
cxnet 发表于 2021-11-14 17:57
我的python是64位的,目前4G的大文件我直接读入后修改替换再写出到文件这一系列动作都可以,只是占用内存 ...

          用循环啊,边读边打,怎么就成多任务了?
          你的文件是文本文件?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-14 18:59:12 From FishC Mobile | 显示全部楼层
具体内存错误是什么内存错误?有报错信息吗?是不是打印机的问题(手动打印能不能打印超过4G的文件)?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-14 19:12:14 | 显示全部楼层
jackz007 发表于 2021-11-14 18:45
用循环啊,边读边打,怎么就成多任务了?
          你的文件是文本文件?

是普通软件打印到打印机的spl数据文件,在C:\Windows\System32\spool\PRINTERS这个文件夹里可以看到,你随便搞个4G大小的文件试试呢,这文件太大不好上传
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-23 10:54:38 | 显示全部楼层
hrpzcf 发表于 2021-11-14 18:59
具体内存错误是什么内存错误?有报错信息吗?是不是打印机的问题(手动打印能不能打印超过4G的文件)?

ValueError: Buffer length can be at most -1 characters
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-23 20:18:34 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-12 21:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表