struct
– 打包和解压原始数据类型¶
This module implements a subset of the corresponding CPython module,
as described below. For more information, refer to the original
CPython documentation: struct
。
支持以下字节顺序:
字符 |
字节顺序 |
大小 |
对齐 |
---|---|---|---|
@ |
本机 |
本机 |
本机 |
< |
小端 |
标准 |
无 |
> |
大端 |
标准 |
无 |
! |
网络(=大端) |
标准 |
无 |
支持以下数据类型:
格式 |
C类型 |
Python 类型 |
标准大小 |
---|---|---|---|
b |
有符号字符 |
整数 |
1 |
B |
无符号字符 |
整数 |
1 |
h |
short |
整数 |
2 |
H |
无符号 short |
整数 |
2 |
i |
int |
整数(1) |
4 |
I |
无符号int |
整数(1) |
4 |
l |
long |
整数(1) |
4 |
L |
无符号long |
整数(1) |
4 |
q |
long long |
整数(1) |
8 |
Q |
unsigned long long |
整数(1) |
8 |
e |
n/a (half-float) |
float (2) |
2 |
f |
float |
float (2) |
4 |
d |
double |
float (2) |
8 |
s |
char[] |
bytes |
|
P |
void * |
整数 |
当使用大于30位的值时,需要长支持。
需要浮点数支持。
与CPython的不同之处
格式字符串中不支持空格。
函数¶
- struct.calcsize(fmt)¶
返回存储给定 fmt 所需的字节数。
- struct.pack(fmt, v1, v2, ...)¶
根据格式字符串 fmt 打包值 v1, v2, …。返回值是编码值的字节对象。
- struct.pack_into(fmt, buffer, offset, v1, v2, ...)¶
根据格式字符串 fmt 将值 v1, v2, … 打包到从 offset 开始的 buffer 中。 offset 可以为负,表示从 buffer 的末尾计数。
- struct.unpack(fmt, data)¶
根据格式字符串 fmt 从 data 中解包。返回值是解包后的值的元组。
- struct.unpack_from(fmt, data, offset=0, /)¶
根据格式字符串 fmt 从 data 的 offset 开始解包。 offset 可以为负,表示从 data 的末尾计数。返回值是解包后的值的元组。