程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Python编写二进制文件,字节大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Python编写二进制文件,字节?

开发过程中遇到Python编写二进制文件,字节的问题如何解决?下面主要结合日常开发的经验,给出你关于Python编写二进制文件,字节的解决方法建议,希望对你解决Python编写二进制文件,字节有所启发或帮助;

如果您只是想复制文件,则可以使用shutil

>>> import shutil
>>> shutil.copyfile('file_to_read.pdf','file_to_save.pdf')

或者,如果您需要按字节访问(类似于您的结构),则可以这样做:

>>> with open('/tmp/fin.pdf','rb') as f1:
...    with open('/tmp/test.pdf','wb') as f2:
...       while True:
...          b=f1.read(1)
...          if b: 
...             # process b if this is your intent   
...             n=f2.write(b)
...          else: break

但是逐字节可能 真的很慢

或者,如果您想要一个可以加快速度的缓冲区(不冒将未知文件大小完全读入内存的风险):

>>> with open('/tmp/fin.pdf','rb') as f1:
...    with open('/tmp/test.pdf','wb') as f2:
...       while True:
...          buf=f1.read(1024)
...          if buf: 
...              for byte in buf:
...                 pass    # process the bytes if this is what you want
...                         # make sure your changes are in buf
...              n=f2.write(buf)
...          else:
...              break

使用Python 2.7+或3.1+,您还可以使用此快捷方式(而不是使用两个with块):

with open('/tmp/fin.pdf','rb') as f1,open('/tmp/test.pdf','wb') as f2:
    ...

解决方法

Python3。我使用QT的文件对话框小部件来保存从Internet下载的PDF。我一直在使用“
open”读取文件,并尝试使用“文件”对话框小部件来写入文件。但是,我一直遇到“
TypeError:’_io.bufferedReader’不支持缓冲区接口”错误。

示例代码:

with open('file_to_read.pdf','rb') as f1: 
    with open('file_to_save.pdf','wb') as f2:
        f2.write(f1)

当不使用’b’指示符时,或者在从Web读取文件(例如urllib或请求)时,此逻辑可以正确处理文本文件。这些是“字节”类型的,我认为我需要打开文件。相反,它以缓冲读取器的形式打开。我尝试了bytes(f1),但得到“
TypeError:’bytes’对象无法解释为整数”。有想法吗?

大佬总结

以上是大佬教程为你收集整理的Python编写二进制文件,字节全部内容,希望文章能够帮你解决Python编写二进制文件,字节所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。