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為設(shè)置的構(gòu)建格式,后面有幾個輸入的值,就設(shè)置幾個格式字符(后文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)建格式,這個部分與pack有所不同。
例子:
struct.unpack('>IH', b'\xf0\xf0\xf0\xf0\x80\x80')返回一個元組(4042322160, 32896)
2. 格式
格式字符串是用來在打包和解包數(shù)據(jù)時指定預(yù)期布局的機制。
它們使用指定被打包/解包數(shù)據(jù)類型的格式字符 進行構(gòu)建。
此外,還有一些特殊字符用來控制 字節(jié)順序,大小和對齊方式。
2.1 字節(jié)順序,大小和對齊方式

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

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

