python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python struct.pack和struct.unpack

Python处理字节串:struct.pack和struct.unpack使用

作者:Robin_Pi

这篇文章主要介绍了Python处理字节串:struct.pack和struct.unpack使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

1. struct

struct是用来解决bytes和其他二进制数据类型的转换的模块,它使得流的操作变得非常简单,完美解决了Python没有字节数据类型的尴尬。

主要功能:

struct.pack

struct的pack函数把任意数据类型变成bytes

使用格式:

struct.pack(format, v1, v2, ...)

其中,format为设置的构建格式,后面有几个输入的值,就设置几个格式字符(后文2.2,当然也可以额外增加2.1的格式)。

例子:

struct.pack('>I', 10240099)

返回生成的字节串b'\x00\x9c@c'

struct.unpack

unpack把bytes变成相应的Python数据类型

使用格式:

struct.unpack(format, buffer)

其中,format为设置的构建格式,这个部分与pack有所不同。

例子:

struct.unpack('>IH', b'\xf0\xf0\xf0\xf0\x80\x80')

返回一个元组(4042322160, 32896)

2. 格式

格式字符串是用来在打包和解包数据时指定预期布局的机制。

它们使用指定被打包/解包数据类型的格式字符 进行构建。

此外,还有一些特殊字符用来控制 字节顺序,大小和对齐方式。

2.1 字节顺序,大小和对齐方式

在这里插入图片描述

注:

1、本机字节顺序可能为大端或是小端,取决于主机系统的不同

2、标准大小仅取决于格式字符

2.2 格式字符

在这里插入图片描述

参考: Python 官方文档:struct — 将字节串解读为打包的二进制数据

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文