python处理C语⾔结构体---struct
简介
python中的struct主要⽤来处理C结构数据的,读⼊的时候先转换为Python的字符串类型,然后再转换为Python的结构化类型,⽐如元组。
主要有pack()和unpack()两个⽅法
主要⽅法
1、pack()
按照给定的格式(fmt),把数据封装成字符串(实际上是类似于c结构体的字节流)
struct.pack(cfmt,v1,v2,…)
v1,v2,…为C结构数据
cfmt为要包装成的格式
eg:
c语言struct头文件
2、unpack()
按照给定的格式(fmt)解析字节流string,返回解析出来的tuple
struct.unpack(pfmt,aa)
解包
pfmt为python的类型
eg:
3、calcsize()
计算给定的格式(fmt)占⽤多少字节的内存
clacsize(fmt)
python类型与C类型
Format    C type python type STANDARD SIZE x pad type no value
c char string of length 11
b signed char integer1
B unsigned char integer1
_Bool bool1
h short integer2
H unsigned short integer2
i int integer4
I unsigned int integer4
l long integer4
L unsigned long integer4
q long long integer8
q long long integer8 Format    C type python type STANDARD SIZE Q unsigned long long integer8
f float float4
d doubl
e float8
s char[]string
p char[]string
P void *integer
⼤⼩端对齐⽅式
在Format string的⾸位,有⼀个可选字符来决定⼤端和⼩端
符号对齐⽅式
@本机的字符顺序(⼤端或⼩端,默认)
=本机的字符顺序(⼤端或⼩端,默认)
<⼩端
>⼤端
!⼤端
如int i = 1
int占4个字节,每个字节8bit
则⼩端顺序的话为:0000 0000 0000 0000 0000 0000 0000 0001(共32bit)
⼤端顺序为:0000 0001 0000 0000 0000 0000 0000 0000

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。