struct.pack unpack

来源:互联网 发布:淘宝男生裤子 编辑:程序博客网 时间:2024/05/16 15:13

关于格式字符串

  在Python手册中,给出了C语言中常用类型与Python类型对应的格式符:

格式符C语言类型Python类型注xpad byteno value ccharstring of length 1 bsigned charinteger Bunsigned charinteger ?_Boolbool hshortinteger Hunsigned shortinteger iintinteger Iunsigned intinteger or long llonginteger Lunsigned longlong qlong longlong Qunsigned long longlong ffloatfloat ddoublefloat schar[]string pchar[]string Pvoid *long

 


struct.pack

  struct.pack用于将Python的值根据格式符,转换为字符串(因为Python中没有字节(Byte)类型,可以把这里的字符串理解为字节流,或字节数组)。其函数原型为:struct.pack(fmt, v1, v2, ...),参数fmt是格式字符串,关于格式字符串的相关信息在下面有所介绍。v1, v2, ...表示要转换的python值。下面的例子将两个整数转换为字符串(字节流):

[python] view plaincopy
  1. import struct    
  2.     
  3. a = 20    
  4. b = 400    
  5.     
  6. str = struct.pack("ii", a, b)  #转换后的str虽然是字符串类型,但相当于其他语言中的字节流(字节数组),可以在网络上传输    
  7. print 'length:', len(str)    
  8. print str    
  9. print repr(str)    
  10.     
  11. #---- result    
  12. #length: 8    
  13. #    ----这里是乱码    
  14. #'/x14/x00/x00/x00/x90/x01/x00/x00'    


格式符"i"表示转换为int,'ii'表示有两个int变量。进行转换后的结果长度为8个字节(int类型占用4个字节,两个int为8个字节),可以看到输出的结果是乱码,因为结果是二进制数据,所以显示为乱码。可以使用python的内置函数repr来获取可识别的字符串,其中十六进制的0x00000014, 0x00001009分别表示20和400。

struct.unpack

  struct.unpack做的工作刚好与struct.pack相反,用于将字节流转换成python数据类型。它的函数原型为:struct.unpack(fmt, string),该函数返回一个元组。 下面是一个简单的例子:


[python] view plaincopy
  1. str = struct.pack("ii"20400)    
  2. a1, a2 = struct.unpack("ii", str)    
  3. print 'a1:', a1    
  4. print 'a2:', a2    
  5.     
  6. #---- result:    
  7. #a1: 20    
  8. #a2: 400   
python struct手册
http://docs.python.org/library/struct.html#module-struct
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 别人问你借账号怎么办 微信成夜间模式怎么办 网络电视突然黑屏了怎么办 1adac连接线坏了怎么办 4g的标志没有了怎么办 苹果手机亏电了怎么办 苹果手机亏电了充不进电怎么办 比值审敛法 ρ=1怎么办 比值审敛法中p=1怎么办 电脑被老友重装系统搞坏了怎么办 vivo手机听筒声音小怎么办 小孩调皮幼儿园不收怎么办 小孩听力残疾幼儿园不收怎么办 幼儿园不收外省小孩怎么办 孩子刚上幼儿园哭闹老师怎么办 孕妇糖耐指标高怎么办 貂蝉经常没蓝怎么办 儿童声导抗c型怎么办 酱牛肉不烂怎么办拯救 卤牛肉一切就碎怎么办 牛肉煮的太烂了怎么办 牛肉卤的太烂怎么办 牛肉炖得太软怎么办 牛肉炖的很硬怎么办 牛肉做的有点硬怎么办 牛肉做老了还能怎么办 牛肉粒 炒老了怎么办 牛肉炖出来很硬怎么办 煮的牛肉太硬怎么办 在产蛋鸡体重偏轻怎么办 产蛋鸡不上高峰怎么办 蛋鸡天热下蛋少怎么办 成年鸡嗉子鼓涨怎么办 黄牛拼失败了钱怎么办 磁力泥粘衣服上怎么办 鼻涕泥弄衣服上怎么办 水晶橡皮泥弄在衣服上怎么办 橡皮泥弄到衣服上怎么办 橡皮泥弄在衣服上怎么办 磁力泥弄衣服上怎么办 苹果7p按键坏了怎么办