python中的struct

发布时间:2019-08-18 13:02:19编辑:auto阅读(1651)

    我们知道python只定义了6种数据类型,字符串,整数,浮点数,列表,元组,字典。但是C语言中有些字节型的变量,在python中该如何实现呢?这点颇为重要,特别是要在网络上进行数据传输的话。

    python提供了一个struct模块来提供转换。下面就介绍这个模块中的几个方法。

    struct模块中最重要的三个函数是pack(), unpack(), calcsize()


    # 按照给定的格式(fmt),把数据封装成字符串(实际上是类似于c结构体的字节流)

    pack(fmt,v1, v2, ...)
     
    #按照给定的格式(fmt)解析字节流string,返回解析出来的tuple
    unpack(fmt,string)      
     
    #计算给定的格式(fmt)占用多少字节的内存

    calcsize(fmt)



    参考:

    http://blog.sina.com.cn/s/blog_4b5039210100f1tu.html


    我的应用(构造zabbix的请求体):

        def gen_request(self, jsons):

            if isinstance(jsons, basestring):

                data = '%s\n' % jsons

            else:

                data = json.dumps(jsons)

            header = 'ZBXD\x01'

            datalen = struct.pack('Q', len(data))

            return header + datalen + data



关键字

上一篇: Python yield用法

下一篇: python 测试工具