python - 确定读取二进制文件的字段的结尾

时间:2013-09-25 17:44:48

标签: python null binary byte

我正在使用二进制保存游戏文件,该文件包含大多数固定的字段,但是有几个可变长度字段,我有解析问题,因为我不知道它们的长度。我要做的是从一个已知的偏移量读取,直到它达到一个nullbyte或者什么也不返回,然后我就可以为下一个字段产生偏移量。

我正在使用的文件是www.retro-gaming-world.com/SAVE.DAT 该字段的开始位于0x8C30,但在结束时会出现问题。

我尝试使用以下代码执行此操作,但我认为我没有这样做。

while catch:
    if "0" in temp2:
            print "found it"
            print temp2
            print hex(infile.tell())
            break
    temp = infile.read(1)
    temp2 += temp

1 个答案:

答案 0 :(得分:2)

您应该使用'\0'来表示空字符:

>>> ord('0')
48
>>> ord('\0')
0