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

Reading .bin or .dat file in Python

我正在生成一个二进制文件。我使用 hexdump 打开它,它看起来像下面这样 enter image description here

但是当我尝试使用 python 读取这个文件时 file = open("lfsr.bin","rb") data = file.read(10) print data

正在打印 blank/empty 但如果我这样做

print repr(data)

它打印

'\x00\x00\x00\x00\x01\x00\x01\x01\x01\x01'

如何以 1023 的块读取此文件?这个文件实际上是一个o/p的PRN生成器代码。

正如您所见,文件中的前 10 个字节(或图像中的所有字节)是 0x000x01。在 ASCII 中,这些都是 non-printable 个字符,因此如果您尝试 print 它们作为字符串,您将看不到任何内容 - 但会读取字节。用 repr 打印它是有效的,因为 repr 给你一个 "string representation of the object",所以你可以在那里看到实际的字节数。

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

注意:这在 Python 3 中有所减少,其中从二进制文件读取的数据作为 bytes 对象返回,而 str 是具有解码的不同类型字符串表示。在这种情况下,打印 data 会显示类似于您从 Python 中的 repr 得到的内容,因为 bytes 对象不假定代表文本,因此最好显示它们的内容,即使它包含 non-printable 个字符。