python - 给定数据结构读取二进制文件
问题描述
我在正确读取二进制文件的内容时遇到问题,可能是由于数据结构的解包不正确(这就是我在这里的原因——因为我不知道如何解包数据结构,给定不同的数据类型) .
该文档对我没有多大帮助,只是将我带到了数据类型及其缩写的标准列表以及一个不太有用的说明。
我试图理解以下代码:
data = struct.unpack('<hlhcl6s10s11s10s2s10schc', b[i:i+66])
其中“应该”对应于该数据结构中的“最后交易价格”(附图): 二进制文件的数据结构
我可以理解 6s , 10s 等表示字符长度。但是开头的'hlhcl'和结尾的'chc'有什么意义。数据结构包含一个“long”(根据文档,应该只是一个“h”),后面跟着很多字符(应该写为“c6s10s11s10s2s1s10s12s10s12s”。
如果你能帮我写出正确的字符序列来获得“最后交易价格”,那将非常有帮助。提前致谢。
解决方案
如果您手头有二进制数据(b
对吗?)并且您只对一个字段感兴趣,为什么不能直接访问该字段?
last_traded_price_bytes = b[88:98]
可能想仔细检查这些数字,很确定它从第 88 个字节开始。
推荐阅读
- java - spring cloud gateway中多了一个yml
- android - 是否可以开发一个带有内部数据库的颤振应用程序,将这些数据上传到外部数据库?
- javascript - Laravel 5. 2 和 DropZone 多张图片上传
- php - PHP & .htaccess - 在 URL 中隐藏文件夹
- python - 使用 xml mini dom python 获取元素文本
- android - Android - 在打开应用程序时从推送通知中读取数据
- java - 具有多个 for 循环的二维数组
- django - Django:如何加入两个模型并获得两者的字段?
- angular - (Angular 8) 验证动态背景图像的图像 src
- reactjs - reactjs:获取外部数据