正在读取Python中的.bin或.dat文件

2024-05-16 00:30:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在生成一个二进制文件。我用hexdump打开的,如下所示 enter image description here

但是当我试图在python中使用 file = open("lfsr.bin","rb") data = file.read(10) print data

正在打印空白/空白 但如果我这么做的话

print repr(data)

它印出来了

^{pr2}$

我怎么能把这个文件分成1023块来读?这个文件实际上是PRN生成器代码的一个o/p。在


Tags: 文件imagedatabinhere二进制descriptionopen
1条回答
网友
1楼 · 发布于 2024-05-16 00:30:18

正如您可以看到的那样,文件中的前10个字节(或者从图像中看,所有字节)要么是0x00或{}。在ASCII中,这些都是不可打印的字符,因此,如果您试图将它们print作为字符串,您将看不到任何内容,但是字节是被读取的。用repr打印它是因为repr提供了一个“对象的字符串表示”,因此可以看到其中的实际字节。在

按照建议,只需data = file.read(1023)从文件中读取1023字节的块。在

注意:在python3中,这一点变得不那么容易混淆,在python3中,从二进制文件读取的数据将作为bytes对象返回,而{}是一种具有解码字符串表示的不同类型。在这种情况下,打印data将显示类似于在Python中从repr获得的内容,因为bytes对象不被假定为表示文本,因此即使包含不可打印的字符,也最好显示它们的内容。在

相关问题 更多 >