Python 的結構體函式 struct pack, unpack 用法詳解
阿新 • • 發佈:2020-10-29
一 python 結構體
* python struct 模組可以用來在儲存二進位制檔案,廣泛用在檔案系統,網路連線領域。
* 它可以用在c語言和python語言之間的資料的格式轉換。
二Python Struct Functions
這裡有5個重要的資料結構模組函式:pack(),unpack(),calcsize(),pack_info()和unpack_from(). 這些函式一般用來把其他檔案轉成二進位制檔案.
常用的資料格式有:
?: boolean
h: short
l: long
i: int
f: float
q: long long int
三 函式:Python struct.pack()
這個函式的作用就是把一系列植包裝成字串:輸入引數必須要和輸入格式嚴格匹配:
example:
import struct var = struct.pack('hhi',5,6,15) print(var) var = struct.pack('iii',19,20,25) print(var)
結果:
b'\x05\x00\x06\x00\x0f\x00\x00\x00' b'\x13\x00\x00\x00\x14\x00\x00\x00\x19\x00\x00\x00'
四 函式:Python struct.unpack()
函式unpack的作用是把變數轉換成特定格式的初始化模樣。這個函式一直返回一個: tuple結構體,哪怕是隻有一個變數。下面是unpack的一個例子:
import struct var = struct.pack('hhi',5,6,15) print(var) ivar = struct.unpack('hhi',var) print(ivar)
很明顯,需要在入參中輸入需要轉換的原始變數的型別才行:
b'\x05\x00\x06\x00\x0f\x00\x00\x00' (5, 6, 15)
五 函式:Python struct calcsize()
該函式的作用是計算和返回特定字串的長度,如下所示:
import struct var = struct.pack('hhi',5,6,15) print(var) print("Size of the string representation:%{}.".format(struct.calcsize('hhi')))
結果:
b'\x05\x00\x06\x00\x0f\x00\x00\x00' Size of the string representation:%8.