Python-无法正确读取十六进制0A

时间:2018-12-29 09:21:37

标签: python hex

我正试图一次从一个十六进制的文件中读取2个字节。

f = open(filename, "rb+")


seekv = 0
x = 16
while x > 0:
     x = x-1
     f.seek(seekv)
     seekv = seekv + 1
     Nextb = binascii.hexlify(f.readline(2))
     print Nextb

问题是,如果这两个字节为0a0a,它将仅读取一个字节0a。我怀疑与0x0A是ASCII中的换行符有关,但这不应该发生。

1 个答案:

答案 0 :(得分:3)

您使用的是f.readline(2)而不是f.read(2)

readline将使用那些0a中的一个作为标记来知道新行从哪里开始。如果切换到f.read(2),则应同时看到两者。

您真的不应该对二进制数据使用readline。