struct模块(用于对象的压缩)
程序员文章站
2022-03-26 12:19:05
6.27自我总结 struct模块 1.struct模块中的函数 | 函数 | return | explain | | | | | | pack(fmt,v1,v2…) | string | 按照给定的格式(fmt),把数据转换成字符串(字节流),并将该字符串返回. | | pack_into(f ......
6.27自我总结
struct模块
1.struct模块中的函数
函数 | return | explain |
---|---|---|
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 |
---|---|---|---|
x | pad byte(填充字节) | no value | |
c | char | string of length 1 | 1 |
b | signed char | integer | 1 |
b | unsigned char | integer | 1 |
? | _bool | bool | 1 |
h | short | integer | 2 |
h | unsigned short | integer | 2 |
i | int | integer | 4 |
i(大写的i) | unsigned int | integer | 4 |
l(小写的l) | long | integer | 4 |
l | unsigned long | long | 4 |
q | long long | long | 8 |
q | unsigned long long | long | 8 |
f | float | float | 4 |
d | double | float | 8 |
s | char[] | string | |
p | char[] | string | |
p | void * | long |
5.注意
- _bool在c99中定义,如果没有这个类型,则将这个类型视为char,一个字节;
- q和q只适用于64位机器;
- 每个格式前可以有一个数字,表示这个类型的个数,如s格式表示一定长度的字符串,4s表示长度为4的字符串;4i表示四个int;
- p用来转换一个指针,其长度和计算机相关;
- f和d的长度和计算机相关;
上一篇: ACL2019|巧用文本语境信息:基于上下文感知的向量优化
下一篇: 数组遍历方法总结
推荐阅读
-
从零学python系列之浅谈pickle模块封装和拆封数据对象的方法
-
nodejs的压缩文件模块archiver用法示例
-
c#调用python脚本实现排序(适用于python脚本中不包含第三方模块的情况)
-
在Python中使用zlib模块进行数据压缩的教程
-
Nginx服务器中用于生成缩略图的模块配置教程
-
ASP.NET页面进行GZIP压缩优化的几款压缩模块的使用简介及应用测试!(附源码)第1/2页
-
在Python的struct模块中进行数据格式转换的方法
-
Python用于学习重要算法的模块pygorithm实例浅析
-
Python中使用gzip模块压缩文件的简单教程
-
python查看模块,对象的函数方法