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.

 

    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM