一 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.