Python读取二进制文件

Python读取二进制文件,第1张

实际项目中经常遇到读取二进制问题,Python下读取二进制文件一般用Python的文件打开读写相关函数和struct.

1。获取文件名filename,可用对话框,也可以直接手写

2。打开文件,这里中是打开,像看书一样,只是打开书,还没有看里面的内容,可以看,也可以不看

binFile=open(filename,'rb')

3。那就看看吧,binFile现在就是书的名字了。这里我们读入4个字,如果read()将读入整个文件

context=binFile.read(4)

4。读入之后问题来了,context包含四个字(4Bytes),但这四个字是加密的(二进制)。这时要找翻译struct.unpack

realContext=struct.unpack(format,context)

5。format的就是加密规则了,由1,2,4,8个字节组成其他类型,或者其他类型的数组。

a,b,c,d=struct.unpack('4c',context)

读入四个字符

对应格式参考 www.jianshu.com/p/5a985f29fa81

6。打开文件后用完一定要关闭,和看书一个样,看完后要合上,不合上后果自己去想

binFile.close()

7。查找内容,文件内容可以一个一个字的按顺序读出,但如果已经知道内容在什么位置,可以用查找方式读出。

binFile.seek(100)

context=binFile.read(4)

读出100位置后面的4个字,(101,102,103,104)

8。Python还提供也一些高级读写功能,如整行读取等

你是指读入二进制文件吧?\x0d\x0a可以使用numpy.fromfile(),也可以使用open(filename, 'rb'),其中的'b'就是二进制的意思,然后使用文件类型的read方法,读取一些字节,再用struct.unpack()方法来解析二进制。\x0d\x0a第一种方法是一次性读入文件(或文件的前多少个连续字节)到一个数组中,因此,灵活性差。\x0d\x0a第二种方法灵活性很高,可以读取任意位置(使用文件的seek()方法跳跃位置)的二进制数据,再使用struct.unpack()方法来进行各种二进制解析。\x0d\x0a\x0d\x0a提示:二进制文件是不保留存储方式的数据格式,因此,读二进制文件时应该知道二进制文件的存储格式。

python按二进制文件格式读写文件时,读写的数据为字符串。根据查询相关资料信息显示,二进制读是把整个文件按照字节进行读取一直到文件结束EOF,不考虑其具体内容。字符串读则是把文件视为一个很长的字符串,需要处理其中的换行符,结束符,转义字符等问题。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11472896.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存