下面就介紹這個模塊中的幾個方法。python
struct.pack():個人理解是,python利用 struct模塊將字符(好比說 int,long ,unsized int 等)拆成 字節流(用十六進制表示),便於傳輸。c++
其函數原型爲:struct.pack(fmt, v1, v2, ...),fmt表示的是類型,後面的V1 V2..參數有多少,那麼對應的類型數量就有多少。函數
>>> import struct >>> x=10 >>> y=20 >>> str=struct.pack('ii',x,y) >>> print str >>> >>> print repr(str) '\n\x00\x00\x00\x14\x00\x00\x00' #小端法
須要說明的是:小端法表示:最高有效字節在最前面,參見 《深刻理解計算機系統P26》spa
用十六進制表示十進制數的時候,一個字節的值域是00~FF。code
爲了同c中的結構體交換數據,還要考慮有的c或c++編譯器使用了字節對齊,一般是以4個字節爲單位的32位系統,故而struct根據本地機器字節順序轉換.能夠用格式中的第一個字符來改變對齊方式.定義以下:blog
struct.unpack():個人理解是將被拆成的字節流進行一個從新組裝成int類型原型
>>> x1,y1=struct.unpack('ii',str) >>> print 'x1:' ,x1 x1: 10 >>> print 'y1:' ,y1 y1: 20 >>>