各個編程語言都有本身的數據類型,當python須要接受其餘語言或者網絡傳輸來交互數據的時候,須要考慮到python的數據類型與其餘平臺之間交互問題。而python的struct就是解決這個問題的。python
struct模塊經常使用方法:編程
struct.pack() #將python的值根據格式符轉換爲字符串(Python中沒有字節類型,能夠把這裏的字符串理解爲字節流或字節數組)。 struct.pack(fmt,v1,v2,...) #fmt是格式字符串v1,v2表示python要轉換的值 例:將整數轉換成字符串import struct a = 20 b = 400 str = struct.pack('ii',a,b) print(str) print(repr(str)) 輸出結果爲: b'\x14\x00\x00\x00\x90\x01\x00\x00' b'\x14\x00\x00\x00\x90\x01\x00\x00' #格式符'i':表示轉換爲int;'ii'表示有兩個int變量。 #十六進制的0x00000014, 0x00001009分別表示20和400。
struct.unpack() #恰好與struct.pack相反,用於將字節流轉換成python數據類型,並返回一個元組。 方法:struct.unpack(fmt,string) import struct str = struct.pack('ii',20,30) a1,a2 = struct.unpack('ii',str) print('a1:',a1) print('a2:',a2) 輸出結果爲: a1: 20 a2: 30