Python處理字節(jié)串:struct.pack和struct.unpack使用
1. struct
struct是用來(lái)解決bytes和其他二進(jìn)制數(shù)據(jù)類型的轉(zhuǎn)換的模塊,它使得流的操作變得非常簡(jiǎ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為設(shè)置的構(gòu)建格式,后面有幾個(gè)輸入的值,就設(shè)置幾個(gè)格式字符(后文2.2,當(dāng)然也可以額外增加2.1的格式)。
例子:
struct.pack('>I', 10240099)返回生成的字節(jié)串b'\x00\x9c@c'
struct.unpack
unpack把bytes變成相應(yīng)的Python數(shù)據(jù)類型
使用格式:
struct.unpack(format, buffer)
其中,format為設(shè)置的構(gòu)建格式,這個(gè)部分與pack有所不同。
例子:
struct.unpack('>IH', b'\xf0\xf0\xf0\xf0\x80\x80')返回一個(gè)元組(4042322160, 32896)
2. 格式
格式字符串是用來(lái)在打包和解包數(shù)據(jù)時(shí)指定預(yù)期布局的機(jī)制。
它們使用指定被打包/解包數(shù)據(jù)類型的格式字符 進(jìn)行構(gòu)建。
此外,還有一些特殊字符用來(lái)控制 字節(jié)順序,大小和對(duì)齊方式。
2.1 字節(jié)順序,大小和對(duì)齊方式

注:
1、本機(jī)字節(jié)順序可能為大端或是小端,取決于主機(jī)系統(tǒng)的不同
2、標(biāo)準(zhǔn)大小僅取決于格式字符
2.2 格式字符

參考: Python 官方文檔:struct — 將字節(jié)串解讀為打包的二進(jìn)制數(shù)據(jù)
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python數(shù)據(jù)分析與可視化的全面指南(從數(shù)據(jù)清洗到圖表呈現(xiàn))
Python 是數(shù)據(jù)分析與可視化領(lǐng)域中最受歡迎的編程語(yǔ)言之一,憑借其豐富的庫(kù)和工具,Python 能夠幫助我們快速處理、分析數(shù)據(jù)并生成高質(zhì)量的可視化圖表,本文將詳細(xì)介紹 Python 中的數(shù)據(jù)分析與可視化的基礎(chǔ)知識(shí),并結(jié)合豐富的示例和技巧,幫助讀者深入理解這些概念2025-06-06
Python中Async語(yǔ)法協(xié)程的實(shí)現(xiàn)
這篇文章主要介紹了Python中Async語(yǔ)法協(xié)程的實(shí)現(xiàn),文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-06-06
對(duì)python插入數(shù)據(jù)庫(kù)和生成插入sql的示例講解
今天小編就為大家分享一篇對(duì)python插入數(shù)據(jù)庫(kù)和生成插入sql的示例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-11-11

