各个编程语言都有自己的数据类型,当python需要接受其他语言或者网络传输来交互数据的时候,需要考虑到python的数据类型与其他平台之间交互问题。而python的struct就是解决这个问题的。
struct模块常用方法:
struct.pack() #将python的值根据格式符转换为字符串(Python中没有字节类型,可以把这里的字符串理解为字节流或字节数组)。 struct.pack(fmt,v1,v2,...) #fmt是格式字符串v1,v2表示python要转换的值 例:将整数转换成字符串import struct a = 20 b = 400 str = struct.pack('ii',a,b) print(str) print(repr(str)) 输出结果为: b'\x14\x00\x00\x00\x90\x01\x00\x00' b'\x14\x00\x00\x00\x90\x01\x00\x00' #格式符'i':表示转换为int;'ii'表示有两个int变量。 #十六进制的0x00000014, 0x00001009分别表示20和400。
struct.unpack() #刚好与struct.pack相反,用于将字节流转换成python数据类型,并返回一个元组。 方法:struct.unpack(fmt,string) import struct str = struct.pack('ii',20,30) a1,a2 = struct.unpack('ii',str) print('a1:',a1) print('a2:',a2) 输出结果为: a1: 20 a2: 30