繁体   English   中英

如何使用python结构在struct中打包结构?

[英]How to pack a struct in a struct using python struct?

如何在struct python打包给定的struct t1

我看到这里给出了很多例子https://docs.python.org/2/library/struct.html来打包像: pack('hhl', 1, 2, 3)

但是如何在struct python示例中打包c类型struct t1

struct s {
    int16_t x;
    int8_t  y;
    uint8_t z;
};
struct t1 {
    int16_t  x;
    struct s y;
};

似乎没有内置的方法将结构打包到结构中,但您可以手动执行。 您将第一个结构打包为二进制数据,然后使用s格式字符将该二进制数据打包到第二个结构中:

s= struct.Struct('hbB')
t1= struct.Struct('h{}s'.format(s.size))

buffer= t1.pack(1, s.pack(2,3,4))

打开包装:

loaded_t1= t1.unpack(buffer)
loaded_s= s.unpack(loaded_t1[1])

如果我正确理解你的问题,可能会被命名为元组。 这是一个例子。

from collections import namedtuple
v1 = namedtuple("a1", "f1 f2");
var1 = v1(1, 2);
v2 = namedtuple("a2", "v1 f3");
var2 = (var1, 3);

这是输出:

>>> print(var2)
(a1(f1=1, f2=2), 3)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM