struct模块(用于对象的压缩)

6.27自我总结

struct模块

1.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)占用多少字节的内存,注意对齐方式

2.压缩

压缩后的内容 = struct.pack(格式,被压缩的内容)

3.解压

解压被压缩的内容 = struct.unpack(格式,压缩后的内容)

4.格式

格式符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

5.注意

  1. _Bool在C99中定义,如果没有这个类型,则将这个类型视为char,一个字节;
  2. q和Q只适用于64位机器;
  3. 每个格式前可以有一个数字,表示这个类型的个数,如s格式表示一定长度的字符串,4s表示长度为4的字符串;4i表示四个int;
  4. P用来转换一个指针,其长度和计算机相关;
  5. f和d的长度和计算机相关;

转载于:https://www.cnblogs.com/pythonywy/p/11097305.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python的struct模块提供了一种处理C语言中二进制数据的方式,常用于网络编程、文件读写和二进制数据的转换等场景。下面是10种常见的应用场景。 1. 网络编程:在网络编程中,数据通常以二进制形式传输,struct模块可以将二进制数据解析为Python对象。 2. 数据存储:在文件读写中,struct模块可以将二进制数据解析为Python对象,或将Python对象转换为二进制数据。 3. 图像处理:在图像处理中,像素通常以二进制形式存储,struct模块可以将二进制数据解析为图像数据。 4. 视频处理:在视频处理中,帧数据通常以二进制形式存储,struct模块可以将二进制数据解析为帧数据。 5. 音频处理:在音频处理中,音频数据通常以二进制形式存储,struct模块可以将二进制数据解析为音频数据。 6. 数据传输:在数据传输中,数据通常以二进制形式传输,struct模块可以将二进制数据解析为Python对象。 7. 数据分析:在数据分析中,数据通常以二进制形式存储,struct模块可以将二进制数据解析为Python对象,或将Python对象转换为二进制数据。 8. 数据压缩:在数据压缩中,数据通常以二进制形式存储,struct模块可以将二进制数据解析为Python对象,或将Python对象转换为二进制数据。 9. 数据加密:在数据加密中,数据通常以二进制形式存储,struct模块可以将二进制数据解析为Python对象,或将Python对象转换为二进制数据。 10. 数据传输协议:在数据传输协议中,数据通常以二进制形式传输,struct模块可以将二进制数据解析为Python对象,或将Python对象转换为二进制数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值