存儲打包二進(jìn)制數(shù)據(jù):struct
struct模塊能夠構(gòu)造并解析打包二級數(shù)據(jù),能夠把文件中的字符串轉(zhuǎn)換為二進(jìn)制數(shù)據(jù)
例如,要生成一個(gè)二進(jìn)制數(shù)據(jù)文件,可以用wb模式打開,并將一個(gè)格式化字符串和幾個(gè)Python對象傳給struct。

Python會創(chuàng)建一個(gè)我們通常寫入文件的二進(jìn)制bytes數(shù)據(jù)字節(jié)串,它主要由不可打印字符的十六進(jìn)制轉(zhuǎn)義組成,就是二進(jìn)制文件。要把值解析成一般的Python對象,可以直接讀取字符串,并使用相同格式字節(jié)串解壓即可。python能夠把值提取出來轉(zhuǎn)換為普通的Python對象,下面以整數(shù)和字符串為例


這里我查詢了一下這些參數(shù)的意義

可以看到fmt是給定格式,那么‘>i4sh’應(yīng)該是確切的格式,
第一位字符『>』,怎么理解呢?
為了同c中的結(jié)構(gòu)體交換數(shù)據(jù),要考慮有的c或c++編譯器使用了字節(jié)對齊,使用方法是放格式串的第一位,有 @ = < > ! 共5種,具體去后面附的鏈接中查,就是這么規(guī)定的。
『i4sh』的意義在C數(shù)據(jù)結(jié)構(gòu)和Python中的數(shù)據(jù)結(jié)構(gòu)如下:
i ----> int ---> integer ---> 7
4s ----> char ---> string ---> 'spam'
h ---> unsigned short ---> integer ---> 8
注:每個(gè)格式前可以有一個(gè)數(shù)字,表示個(gè)數(shù),比如上面的4s
參考官網(wǎng)資料:7.3. struct
>i4sh這部分原作者:臨書
鏈接:https://www.zhihu.com/question/50704558/answer/122388467
可以使用二進(jìn)制文件的處理模式,‘wb’,'rb'整體處理更簡單的二進(jìn)制文件如圖片或視頻文件,而無需將他們解壓,你的代碼就可以將他們原封不動地傳給其他文件或工具