各个编程语言都有自己的数据类型,当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

 

posted on 2016-12-21 16:49  PingY  阅读(432)  评论(0编辑  收藏  举报