读取给定数据结构的二进制文件

Reading a binary file given the data structure

我在正确读取二进制文件的内容时遇到问题,可能是由于数据结构解包不正确(这就是我来这里的原因——因为我不知道如何解包数据结构,给定不同的数据类型)。

文档对我帮助不大,只是让我找到了数据类型及其缩写的标准列表和一个不太有用的插图。

我正在尝试理解以下代码:

data = struct.unpack('<hlhcl6s10s11s10s2s10schc', b[i:i+66])

其中"should"对应这个数据结构中的'last traded price'(附图): Data Structure of the binary file

我能理解 6s , 10s 等表示字符长度。但是开头的'hlhcl'和结尾的'chc'有什么意义呢。数据结构包含一个 'long'(根据文档,它应该只是一个 'h'),后跟许多字符(应该写成 'c6s10s11s10s2s1s10s12s10s12s'.

如果您能帮我写出正确的字符序列以获得 'last traded price',那将非常有帮助。提前致谢。

如果您手头有二进制数据(b,对吗?)并且您只对一个字段感兴趣,为什么不能直接访问该字段?

last_traded_price_bytes = b[88:98]

可能需要仔细检查这些数字,很确定它是从第 88 个字节开始的。