struct模块
# struct 模块 用来将数字字符串等转换成固定长度的字节
# format:
# x: pad byte (no data); c:char; b:signed byte; B:unsigned byte;
# ?: _Bool (requires C99; if not available, char is used instead)
# h:short; H:unsigned short; i:int; I:unsigned int;
# l:long; L:unsigned long; f:float; d:double.
# Special cases (preceding decimal count indicates length):
# s:string (array of char); p: pascal string (with count byte).
# Special cases (only available in native format):
# n:ssize_t; N:size_t;
# P:an integer type that is wide enough to hold a pointer.
# Special case (not in native mode unless 'long long' in platform C):
# q:long long; Q:unsigned long long
import struct
# a = struct.pack('i',4658) # 'i' 模式转换成4个字节
# print(a,len(a)) # b'2x12x00x00' 4
# b = struct.unpack('i',a)
# print(b) # (4658,)
# print(b[0]) # unpack后的数据是一个元组
# a = struct.pack('f',5641564987)
# print(a,len(a)) # b'2x12x00x00' 4
# b = struct.unpack('f',a)
# print(b) # (4658,)
# print(b[0]) # unpack后的数据是一个元组
# # 输出
# # b'xba!xa8O' 4
# # (5641565184.0,)
# # 5641565184.0