python中没有字节的数据类型,利用pack可以将里面的字符转化为字节流,或字节数组
struct.pack()
v1,v2...表示需要打包转换的Python值
struct.pack(fmt, v1, v2);
//将v1,v2....等参数进行包装,包装的方法由fmt指定,返回一个bytes对象
struct.unpack()
pack打包后就可以用unpack解包,返回一个元组,从缓冲区buffer中解包,缓冲区的字节大小必须与格式所需大小匹配。
struct.unpack(fmt, buff);
//fmt为格式要求,buff为缓冲区
例:
import struct
a = 10
b = 20
str = struct.pack("ii", a ,b)//打包
str1 = struct.unpack("ii", str)
格式符:“i”,表示转换为int数据,ii表示有两个int变量
转换后的长度为8个字节,而解包后字符串大小为2,表示有两个字符
格式符:
//格式符 //C type //python
'c' //char //string of length 1
'b' //signedchar //integer
'B' //unsignedchar //intege
'?' //_Bool //bool
'h' //short //integer
'H' //unsignedshort //integer
'i' //int //integer
'I' //unsignedint //integer of long
'l' //long //integer
'L' //unsignedlong //long
'q' //longlong //long
'Q' //unsignedlonglong //long
'f' //float //float
'd' //double //float
's' //char[] //string
'p' //char[] //string
'p' //void* //long