gpt4 book ai didi

python - 将打包数据解码为结构

转载 作者:太空狗 更新时间:2023-10-30 01:45:25 25 4
gpt4 key购买 nike

将 python 字符串解包到字段中的最佳方法是什么

我有从一个 tcp 套接字接收到的数据,它被打包如下,我相信它会在一个来自套接字 recv 函数的字符串中

格式如下

uint8 - 标题
uint8 - 长度
uint32 - 类型ID
uint16 -param1
uint16 -param2
uint16 -param3
uint16 -param4
char[24] - 名称字符串
uint32 - 校验和
uint8 - 页脚

(我还需要解压其他不同格式的数据包)

我如何解压这些?

我是 python 新手,学过一点“C”。如果我使用“C”,我可能会使用结构,这是使用 Python 的方式吗?

问候

X

最佳答案

struct 模块旨在根据格式字符串将异构数据解包为元组。一次解压整个结构比尝试一次拉出一个字段更有意义。这是一个例子:

fields = struct.unpack('!BBI4H20sIB', data)

然后您可以访问给定的字段,例如第一个字段:

fields[0]

您还可以使用元组来初始化 NamedTuple;看看 documentation for struct举个例子。 NamedTuples 仅在 Python 2.6+ 中可用,但它们的行为更像 Python 结构,因为您可以将元素作为属性访问,例如字段.header。当然,您也可以通过编写一个类来封装元组中的信息,通过多做一些工作来完成此操作……如果您愿意的话。正如我上面所展示的,您始终可以直接对字段进行索引。

关于python - 将打包数据解码为结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1879914/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com