Python struct.pack 和 unpack

我绝不是一个经验丰富的Python程序员,这就是为什么我相信这个问题可能有一个明显的答案,但我就是无法理解struct.pack和unpack。我有以下代码:

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

我想反转它的打包,但是我不知道如何反转,我知道“<”表示小端,“I”是无符号整数,仅此而已,我不知道如何使用 struct.unpack 反转打包。


牧羊人nacy
浏览 148回答 2
2回答

桃花长相依

struct.pack获取非字节值(例如整数、字符串等)并将它们转换为bytes. 相反,struct.unpack将bytes它们转换为“高阶”等价物。例如:>>> from struct import pack, unpack>>> packed = pack('hhl', 1, 2, 3)>>> packedb'\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:&nbsp;//docs.python.org/3/library/struct.html

www说

查看文档: https:&nbsp;//docs.python.org/3/library/struct.htmlobj&nbsp;=&nbsp;struct.pack("<"+"I"*elements,&nbsp;*self.buf[:elements]) struct.unpack("<"+"I"*elements,&nbsp;obj)这对你有用吗?
打开App,查看更多内容
随时随地看视频慕课网APP