1. 程式人生 > 實用技巧 >Python 的結構體函式 struct pack, unpack 用法詳解

Python 的結構體函式 struct pack, unpack 用法詳解

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