struct模块
Struct模块
将一个类型转成固定长度的bytes。
格式 | C 类型 | Python 类型 | 标准大小 | 注释 |
---|---|---|---|---|
x |
填充字节 | 无 | ||
c |
char |
长度为 1 的字节串 | 1 | |
b |
signed char |
整数 | 1 | (1), (2) |
B |
unsigned char |
整数 | 1 | (2) |
? |
_Bool |
bool | 1 | (1) |
h |
short |
整数 | 2 | (2) |
H |
unsigned short |
整数 | 2 | (2) |
i |
int |
整数 | 4 | (2) |
I |
unsigned int |
整数 | 4 | (2) |
l |
long |
整数 | 4 | (2) |
L |
unsigned long |
整数 | 4 | (2) |
q |
long long |
整数 | 8 | (2) |
Q |
unsigned long long |
整数 | 8 | (2) |
n |
ssize_t |
整数 | (3) | |
N |
size_t |
整数 | (3) | |
e |
(6) | 浮点数 | 2 | (4) |
f |
float |
浮点数 | 4 | (4) |
d |
double |
浮点数 | 8 | (4) |
s |
char[] |
字节串 | ||
p |
char[] |
字节串 | ||
P |
void * |
整数 | (5) |
方法:
pack(格式,类型)
:将类型转为指定格式长度的bytes
import struct
print(struct.pack('i',999999999))
b'\xff\xc9\x9a;'
unpack(格式,bytes)
:以pack打的包同样的格式拆包为元组。
import struct
res = struct.pack('i',999999999)
print(struct.unpack('i',res))
(999999999,)