视频加载失败

常用模块之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) # 打印解析后的数据

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!

打赏
Profile Image of the Author
Dream
Hello, I'm Dream.
公告
欢迎来到我的博客!爱学习爱进步。
分类
标签
最新动态
站点统计
文章
300
分类
5
标签
26
总字数
640,882
运行时长
0 天
最后活动
0 天前
站点信息
构建平台
Vercel
博客版本
Firefly v6.16.8
文章许可
CC BY-NC-SA 4.0
文章目录