python 中 struct 用法

 

下面就介绍这个模块中的几个方法。python

struct.pack():个人理解是,python利用 struct模块将字符(好比说 int,long ,unsized int 等)拆成 字节流(用十六进制表示),便于传输。c++

其函数原型为:struct.pack(fmt, v1, v2, ...),fmt表示的是类型,后面的V1 V2..参数有多少,那么对应的类型数量就有多少。函数

>>> import struct
>>> x=10
>>> y=20
>>> str=struct.pack('ii',x,y)
>>> print str
>>>
>>> print repr(str)
'\n\x00\x00\x00\x14\x00\x00\x00'  #小端法

须要说明的是:小端法表示:最高有效字节在最前面,参见 《深刻理解计算机系统P26》spa

                  用十六进制表示十进制数的时候,一个字节的值域是00~FF。code

 

为了同c中的结构体交换数据,还要考虑有的c或c++编译器使用了字节对齐,一般是以4个字节为单位的32位系统,故而struct根据本地机器字节顺序转换.能够用格式中的第一个字符来改变对齐方式.定义以下:blog

 

struct.unpack():个人理解是将被拆成的字节流进行一个从新组装成int类型原型

>>> x1,y1=struct.unpack('ii',str)
>>> print 'x1:' ,x1
x1: 10
>>> print 'y1:' ,y1
y1: 20
>>>
相关文章
相关标签/搜索