官网介绍
1.struct作用
以Python的字符串作为表示C结构,处理存储在文件中或来自网络连接的二进制数据2.字节顺序
文章图片
如果第一个字符中未指定,则默认的为@,即小端
另:字节序是否用大写还是小写,与具体的使用的系统有关,可以通过sys.byteorder 查看系统的字节序的大端及小端的情况通常情况:使用!表示大端开始的
3.格式化字符串
文章图片
文章图片
4.struct常用方法 4.1 Struct
返回struct对象
s = struct.Struct('I3sf')#格式化,I:int类型,3s:3个字符,f:float
print sprint s.format
返回struct对象
object at 0x0000000003DFDD88>
'I3sf'
4.2 pack
原型:def pack(fmt, *args):
每个字节的数据转换成对应个数的十六进制表示
- 格式化
from struct import *a = pack("hhl", 1, 2, 3)
print repr(a)
结果:
'\x01\x00\x02\x00\x03\x00\x00\x00'
- 格式化中含有数字,其表示重复的
b = pack("2hl", 1, 2, 3)
print repr(b)
结果:
\x01\x00\x02\x00\x03\x00\x00\x00
- 末尾填充,并根据对齐方式补充
b = pack("llh0l", 1, 2, 3)
print repr(b)
结果
\x01\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00
4.3 unpack
def unpack(fmt, string):
解包出来的是元组
b = pack("2hl", 1, 2, 3)a = unpack("llh",b)
print type(a)
print a
结果为:
(1, 2, 3)
4.4 calcsize
def calcsize(fmt):
- 统计大小
calcsize("hhl")
【Python之struct模块】结果为8
(1, 2, 3)
推荐阅读
- 推荐系统论文进阶|CTR预估 论文精读(十一)--Deep Interest Evolution Network(DIEN)
- Python专栏|数据分析的常规流程
- Python|Win10下 Python开发环境搭建(PyCharm + Anaconda) && 环境变量配置 && 常用工具安装配置
- Python绘制小红花
- Pytorch学习|sklearn-SVM 模型保存、交叉验证与网格搜索
- OpenCV|OpenCV-Python实战(18)——深度学习简介与入门示例
- python|8. 文件系统——文件的删除、移动、复制过程以及链接文件
- 爬虫|若想拿下爬虫大单,怎能不会逆向爬虫,价值过万的逆向爬虫教程限时分享
- 分布式|《Python3网络爬虫开发实战(第二版)》内容介绍
- java|微软认真聆听了开源 .NET 开发社区的炮轰( 通过CLI 支持 Hot Reload 功能)