Python3 Struct解压缩格式字符串

时间:2020-04-22 08:06:41

标签: python-3.x struct unpack

我正在使用python3 struct模块解压缩从串行com提取的字节数据。 (在帮助下)我已经弄清楚了如何将大多数数据打包成易于阅读的形式。我在组头结构struct group_hdr上遇到格式字符串时遇到困难(请参阅随附的屏幕快照文档)。我有一个字节数据(b)。我知道“单词”的字符串是“ H”,但是从文档中我不清楚phd_status是什么。尚未在数据结构文档中的其他任何地方定义它。有任何想法吗?。预先谢谢你。

struct group_hdr
{
union phdb_status  status
word               label
}

subrecord = struct.unpack_from('<??H', b)

Data structure

1 个答案:

答案 0 :(得分:1)

状态中所述,它是一个宽度为32位的简单位域。联合可能用C(或类似语言)的其他地方定义为

union phdb_status {
    unsigned int bit_0:1;
    unsigned int bit_1:1;
};

以下Python代码将存储您的值:

status, label = struct.unpack_from('<IH', b)

,您可以使用statusstatus & 1测试status & 2的各个位。