簡體   English   中英

Python struct.pack 和解包

[英]Python struct.pack and unpack

我絕不是一個有經驗的 python 程序員,這就是為什么我相信這個問題可能有一個明顯的答案,但我只是無法圍繞 struct.pack 和解包。 我有以下代碼:

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許多是elements )。 您可以使用相同的結構字符串( '<' + 'I' * elements部分)將它們解包 - 例如struct.unpack('<' + 'I' * elements, value)

示例來自: https : //docs.python.org/3/library/struct.html

查看文檔: https : //docs.python.org/3/library/struct.html

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

這對你有用嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM