Python struct.pack和解压缩

埃米尔·B

我绝对不是一个经验丰富的python程序员,这就是为什么我认为可能对此有一个明显的答案,但是我只是无法将自己的头缠在struct.pack和unpack上。我有以下代码:

struct.pack("<"+"I"*elements, *self.buf[:elements])

我想反向打包,但是我不确定如何,我知道“ <”表示小尾数,“ I”是无符号整数,也就是这样,我不确定如何使用struct.unpack反向打包。

科林·海斯特

struct.pack接受非字节值(例如整数,字符串等)并将其转换为bytes反之,struct.unpack需要bytes并将其转换为自己的“高阶”等价物。

例如:

>>> from struct import pack, unpack
>>> packed = pack('hhl', 1, 2, 3)
>>> packed
b'\x00\x01\x00\x02\x00\x00\x00\x03'
>>> unpacked = unpack('hhl', packed)
>>> unpacked
(1, 2, 3)

因此,在您的实例中,您有低端无符号整数(elements其中很多)。您可以使用相同的结构字符串('<' + 'I' * elements部分)将它们解压缩-例如struct.unpack('<' + 'I' * elements, value)

来自以下示例:https : //docs.python.org/3/library/struct.html

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章