常用模块之struct模块
506 字
3 分钟
常用模块之struct模块
【一】struct模块介绍
- struct.pack()是Python内置模块struct中的一个函数
- 它的作用是将指定的数据按照指定的格式进行打包,并将打包后的结果转换成一个字节序列(byte string),可以用于在网络上传输或者储存于文件中。
struct.pack(fmt, v1, v2, ...)【二】参数详解
- 其中,fmt为格式字符串,指定了需要打包的数据的格式,后面的v1,v2,…则是需要打包的数据。
- 这些数据会按照fmt的格式被编码成二进制的字节串,并返回这个字节串。
【1】fmt的常用格式符
- x --- 填充字节
- c --- char类型,占1字节
- b --- signed char类型,占1字节
- B --- unsigned char类型,占1字节
- h --- short类型,占2字节
- H --- unsigned short类型,占2字节
- i --- int类型,占4字节
- I --- unsigned int类型,占4字节
- l --- long类型,占4字节(32位机器上)或者8字节(64位机器上)
- L --- unsigned long类型,占4字节(32位机器上)或者8字节(64位机器上)
- q --- long long类型,占8字节
- Q --- unsigned long long类型,占8字节
- f --- float类型,占4字节
- d --- double类型,占8字节
- s --- char[]类型,占指定字节个数,需要用数字指定长度
- p --- char[]类型,跟s一样,但通常用来表示字符串
- ? --- bool类型,占1字节
【2】具体的格式化规则
- 可以在Python文档中查看(链接)。
【三】使用
import struct
# 定义一个包含不同类型字段的格式字符串format_string = 'i4sh'
# 示例数据:整数、四个字节的原始数据、短整数data_to_pack = 12345, b'\x12\x34\x56\x78', 9876
# 使用 struct.pack 将数据打包成二进制字节串packed_data = struct.pack(format_string, *data_to_pack)
print("Packed data:", packed_data.hex()) # 打印打包后的十六进制表示
# 解析二进制字节串,恢复原始数据unpacked_data = struct.unpack(format_string, packed_data)
print("Unpacked data:", unpacked_data) # 打印解析后的数据支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!
相关文章智能推荐
1
C 语言发展史
编程语言了解 C 语言从 BCPL、B 语言到现代标准 C 的发展历程、核心特点与应用领域。
2
C 语言开发环境的安装与配置
编程语言在 Windows、Linux 与 macOS 上安装 C 工具链,配置编辑器,并编译运行第一个 C 程序。
3
C 语言初识:程序运行机制与基本结构
编程语言认识 C 程序从源代码到运行的完整流程,以及基础语法和程序的基本结构。
4
C 语言基础:注释、关键字、变量与数据类型
编程语言学习 C 语言的注释、关键字、标识符、常量、变量和基本数据类型等基础知识。
5
C 语言数据类型
编程语言理解 C 语言的数据类型体系,包括基本类型、整数类型、浮点类型和逻辑类型。
随机文章随机推荐














