Python處理字節(jié)串:struct.pack和struct.unpack使用
1. struct
struct
是用來解決bytes和其他二進制數(shù)據(jù)類型的轉(zhuǎn)換的模塊,它使得流的操作變得非常簡單,完美解決了Python沒有字節(jié)數(shù)據(jù)類型的尷尬。
主要功能:
- Python數(shù)據(jù)類型 ——> “字節(jié)串”
- “字節(jié)串” ——> Python數(shù)據(jù)類型
struct.pack
struct的pack函數(shù)把任意數(shù)據(jù)類型變成bytes
使用格式:
struct.pack(format, v1, v2, ...)
其中,format
為設置的構建格式,后面有幾個輸入的值,就設置幾個格式字符(后文2.2,當然也可以額外增加2.1的格式)。
例子:
struct.pack('>I', 10240099)
返回生成的字節(jié)串b'\x00\x9c@c'
struct.unpack
unpack把bytes變成相應的Python數(shù)據(jù)類型
使用格式:
struct.unpack(format, buffer)
其中,format
為設置的構建格式,這個部分與pack有所不同。
例子:
struct.unpack('>IH', b'\xf0\xf0\xf0\xf0\x80\x80')
返回一個元組(4042322160, 32896)
2. 格式
格式字符串是用來在打包和解包數(shù)據(jù)時指定預期布局的機制。
它們使用指定被打包/解包數(shù)據(jù)類型的格式字符 進行構建。
此外,還有一些特殊字符用來控制 字節(jié)順序,大小和對齊方式。
2.1 字節(jié)順序,大小和對齊方式
注:
1、本機字節(jié)順序可能為大端或是小端,取決于主機系統(tǒng)的不同
2、標準大小僅取決于格式字符
2.2 格式字符
參考: Python 官方文檔:struct — 將字節(jié)串解讀為打包的二進制數(shù)據(jù)
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
由淺入深學習TensorFlow MNIST 數(shù)據(jù)集
這篇文章主要由淺入深學習的講解TensorFlow MNIST 數(shù)據(jù)集,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-09-09Python?Flask框架實現(xiàn)小紅書圖片無水印解析下載
這篇文章主要為大家介紹了Python?Flask框架實現(xiàn)小紅書圖片無水印解析下載,需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-11-11