我有一个由delphi编写的二进制文件。这就是我所知道的:
我这是为了读取第一个块值:
import struct
f = open("filename", 'rb')
value = struct.unpack('i', f.read(4))
Strings值怎么样?什么是好的解决方案?有没有办法迭代字符串并找到每个字符串值的最终分隔符“\ 0”,就像在C中一样?
答案 0 :(得分:0)
如果您不知道长度,打包时会有点复杂。我给你一个应该解决你的问题的参考。 packing and unpacking variable length array/string using the struct module in python
答案 1 :(得分:0)
我发现Delphi使用7位整数压缩来指定字符串的开头,需要读取多少字节。我发现here使用python实现了相同的算法。所以,我只需要将文件传递给decode7bit(bytes):
函数,它会告诉我有多少字节需要读取。