在Python中读取.bin或.dat文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Python中读取.bin或.dat文件相关的知识,希望对你有一定的参考价值。
我正在生成一个二进制文件。我用hexdump打开它,它看起来像enter image description here下面
但是当我尝试使用file = open("lfsr.bin","rb")
data = file.read(10)
print data
在python中读取此文件时
打印空白/空白但如果我这样做
print repr(data)
它打印
'\x00\x00\x00\x00\x01\x00\x01\x01\x01\x01'
如何以1023块的形式读取此文件?该文件实际上是PRN生成器代码的o / p。
答案
你可以看出文件中的前10个字节(或者所有字节,从图像看来)都是0x00
或0x01
。在ASCII中,那些都是不可打印的字符,所以如果你试图将它们作为一个字符串进行print
,你将看不到任何东西 - 但是字节被读取。使用repr
打印它是有效的,因为repr
为您提供了“对象的字符串表示”,因此您可以看到其中的实际字节。
按照建议,只需要data = file.read(1023)
从文件中读取1023个字节的块。
注意:这在Python 3中有点不那么令人困惑,其中从二进制文件读取的数据作为bytes
对象返回,而str
是具有解码字符串表示的不同类型。在这种情况下,打印data
会显示类似于你从Python中的repr
得到的东西,因为bytes
对象不被认为代表文本,所以即使它包含不可打印的字符,也最好显示它们的内容。
以上是关于在Python中读取.bin或.dat文件的主要内容,如果未能解决你的问题,请参考以下文章