在 Python 中打包/解包复杂数据

Posted

技术标签:

【中文标题】在 Python 中打包/解包复杂数据【英文标题】:Packing / unpacking complex data in Python 【发布时间】:2013-05-12 21:30:11 【问题描述】:

我正在尝试使用自定义协议通过嵌入式设备发送/接收数据。 struct.pack() 和 unpack() 似乎可以完成这项工作,但 fmt 参数似乎不够灵活,无法处理可变长度的数据数组。

示例:设备发送[事件报告] [事件数量] ([事件类型] [事件值], [事件类型] [事件值], ...)

地点:

事件报告(无符号 8 位) 事件数(无符号 16 位) 事件类型(无符号 8 位) 事件值(有符号 16 位)

将这些数据解码为 Python 的最佳方法是什么?另外,我将如何编码类似的数据结构以发送到设备?

【问题讨论】:

【参考方案1】:

考虑使用python-bitstring 来实现二进制协议。它非常灵活且易于使用。

【讨论】:

以上是关于在 Python 中打包/解包复杂数据的主要内容,如果未能解决你的问题,请参考以下文章

Python之函数

python之打包,解包

Android 逆向逆向修改游戏应用 ( APK 解析工具 | 解包 -> 分析 -> 重打包 -> 签名 流程 )

如何在 Perl 中使用“打包/解包”?

struct--二进制数据结构的打包与解包

Android ROM包定制(解包,增删模块,打包)