python的 struct.pack() 与struct.unpack()

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值