日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python struct模块的使用

發布時間:2025/3/20 python 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python struct模块的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

struct模塊中的函數

函數returnexplain
pack(fmt,v1,v2…)string按照給定的格式(fmt),把數據轉換成字符串(字節流),并將該字符串返回.
pack_into(fmt,buffer,offset,v1,v2…)None按照給定的格式(fmt),將數據轉換成字符串(字節流),并將字節流寫入以offset開始的buffer中.(buffer為可寫的緩沖區,可用array模塊)
unpack(fmt,v1,v2……)tuple按照給定的格式(fmt)解析字節流,并返回解析結果
pack_from(fmt,buffer,offset)tuple按照給定的格式(fmt)解析以offset開始的緩沖區,并返回解析結果
calcsize(fmt)size of fmt計算給定的格式(fmt)占用多少字節的內存,注意對齊方式

格式化字符串

當打包或者解包的時,需要按照特定的方式來打包或者解包.該方式就是格式化字符串,它指定了數據類型,除此之外,還有用于控制字節順序、大小和對齊方式的特殊字符.

對齊方式

為了同c中的結構體交換數據,還要考慮c或c++編譯器使用了字節對齊,通常是以4個字節為單位的32位系統,故而struct根據本地機器字節順序轉換.可以用格式中的第一個字符來改變對齊方式.

定義如下

CharacterByte orderSize Alignment
@(默認)本機本機
=本機標準
<小端標準
>大端標準
!network(大端)標準
Python學習交流QQ群:579817333

格式符

格式符C語言類型Python類型Standard size
xpad byte(填充字節)no value
ccharstring of length 11
bsigned charinteger1
Bunsigned charinteger1
?_Boolbool1
hshortinteger2
Hunsigned shortinteger2
iintinteger4
I(大寫的i)unsigned intinteger4
l(小寫的L)longinteger4
Lunsigned longlong4
qlong longlong8
Qunsigned long longlong8
ffloatfloat4
ddoublefloat8
schar[]string
pchar[]string
Pvoid *long

注意:

  • _Bool在C99中定義,如果沒有這個類型,則將這個類型視為char,一個字節;
  • q和Q只適用于64位機器;
  • 每個格式前可以有一個數字,表示這個類型的個數,如s格式表示一定長度的字符串,4s表示長度為4的字符串;4i表示四個int;
  • P用來轉換一個指針,其長度和計算機相關;
  • f和d的長度和計算機相關;

總結

以上是生活随笔為你收集整理的python struct模块的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。