python中的struct

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python中的struct相关的知识,希望对你有一定的参考价值。

我们知道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中的struct的主要内容,如果未能解决你的问题,请参考以下文章

c#node struct自定义LinkedListNode结构中的循环依赖

将大端字节数组转换为 int,如 python 中的 struct.unpack

Python struct 详解

python中的struct

Python之struct

在 Python 多处理进程中运行较慢的 OpenCV 代码片段