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

f

float

float (2)

4

d

double

float (2)

8

s

char[]

bytes

P

void *

整数

  1. 当使用大于30位的值时,需要长支持。

  2. 需要浮点数支持。

与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)

根据格式字符串 fmtdata 中解包。返回值是解包后的值的元组。

struct.unpack_from(fmt, data, offset=0, /)

根据格式字符串 fmtdataoffset 开始解包。 offset 可以为负,表示从 data 的末尾计数。返回值是解包后的值的元组。