博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python中的struct
阅读量:6607 次
发布时间:2019-06-24

本文共 654 字,大约阅读时间需要 2 分钟。

我们知道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)



参考:


我的应用(构造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

      本文转自Tenderrain 51CTO博客,原文链接http://blog.51cto.com/tenderrain/1878645:,如需转载请自行联系原作者

你可能感兴趣的文章
《深入理解JavaScript》——1.7 运算符
查看>>
springboot docker笔记
查看>>
跟我一起学QT3:电子表格的制作
查看>>
mysql char和varchar区别
查看>>
Modbus RTU 通信工具设计
查看>>
服务化改造实践 | 如何在 Dubbo 中支持 REST
查看>>
Memcached的备份负载
查看>>
快速预览Office 15服务端:Exchange 2013
查看>>
echo(),print(),print_r()三者的区别
查看>>
Mac上面Docker构建镜像时超时
查看>>
Logwatch linux日志监视器解析
查看>>
【第8章】JVM内存管理
查看>>
easyui datagrid plunges 扩展 插件
查看>>
Maven发布本地jar包及部署到远程服务器
查看>>
ubuntu Resource temporarily unavailable (Could ...
查看>>
xfire开发并调用webservice
查看>>
nodejs 文件、文件夹操作
查看>>
超强的方法参数非空验证工具-Beta-1.0.0
查看>>
华为8.0系统机器最简单激活XPOSED框架的教程
查看>>
Github排名中的Python web框架Flask学习方法,非常受用!
查看>>