存儲打包二進(jìn)制數(shù)據(jù):struct

存儲打包二進(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)制文件如圖片或視頻文件,而無需將他們解壓,你的代碼就可以將他們原封不動地傳給其他文件或工具

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 有的時(shí)候需要用python處理二進(jìn)制數(shù)據(jù),比如,存取文件,socket操作時(shí).這時(shí)候,可以使用python的str...
    Ten_Minutes閱讀 610評論 0 0
  • 常用模塊 認(rèn)識模塊 什么是模塊 什么是模塊? 常見的場景:一個(gè)模塊就是一個(gè)包含了python定義和聲明的文件,文...
    go以恒閱讀 2,170評論 0 6
  • 該模塊在Python值和表示為Python bytes對象的C結(jié)緩沖區(qū)構(gòu)體之間進(jìn)行轉(zhuǎn)換??捎糜谔幚泶鎯υ谖募谢蛘?..
    lakerszhy閱讀 1,426評論 0 0
  • 虎躍龍騰迎萬壽, 普天同慶憶崢嶸。 巨人擎起新天地, 百姓清除舊世風(fēng)。 深化改革群眾喜, 從嚴(yán)治黨政家功。 人心凝...
    明沙水閱讀 10,500評論 2 4
  • 1、數(shù)據(jù)庫基本知識介紹 功能:存儲大量的數(shù)據(jù),查詢數(shù)據(jù) 數(shù)據(jù)庫排名:https://db-engines.com/...
    繁花似錦之流年似水閱讀 564評論 0 3

友情鏈接更多精彩內(nèi)容