今天在看一段Python代码时,看到如下代码

 if timestamp:tt = time.time()else:tt = 0.0 if not isinstance(self.data,str):_data = self.dataelse:_data = bytearray(self.data,'latin1')nnn = len(self.data)lll = self.tap_lenghtreturn struct.pack("!dHHHH%ds"%len(self.data),tt,0,self.tap_lenght,self.tap_type,0,_data)

其大概意思是组包数据,利用Python的struct的pack将需要发送的网络的数据打包成字节数组,但其中有一行代码百思不得其解,就是这样

        return struct.pack("!dHHHH%ds"%len(self.data),tt,0,self.tap_lenght,self.tap_type,0,_data)

咋一看的时候蒙住了,%ds是什么鬼,我知道前面!,d,H代表的是什么意思,但是为什么突然放个%ds,后面还跟了个%len(self.data),其实我们不应该把%ds看做一个整体,应该把%d单独拿出来看,s其实就是和前面的d,H这样符号的作用一样,代表的是类型,至于%d,应该和和%len(self.data)连起来看,这样分解后这行代码其实可以分为:

format= '!dHHHH%ds"%len(self.data)'
#例如:len(self.data)长度为4,则format='!dHHHH4s'
return struct.pack(format,tt,0,self.tap_lenght,self.tap_type,0,_data)

这样一看是不是就很清晰明了了

Python struct.pack(“!dHHHH%ds“%len(self.data),tt,0,self.tap_lenght,self.tap_type,0,_data)里的%ds是什么意思相关推荐

  1. python struct pack解析_python struct pack

    这个struct主要是用来处理C结构数据的,读入时先转换为Python的字符串类型,然后再转换为Python的结构化类型,比如元组(tuple)啥的~ 一般输入的渠道来源于文件或者网络的二进制流. 在 ...

  2. python struct pack一个数组_Python中struct.pack的一个疑问

    展开全部 的确很奇怪.我试验了10几分钟,你按下面的方法来做就可以正确.import struct zzz = ("{Type:2}").encode("utf-8&qu ...

  3. python struct pack string_struct (String) – Python 中文开发手册

    Python 中文开发手册 struct (String) - Python 中文开发手册 该模块执行Python值与C结构之间的转换,表示为Python字符串.这可用于处理存储在文件或网络连接中的二 ...

  4. python struct pack string_python struct pack fmt格式

    Python使用struct处理二进制 有的时候需要用python处理二进制数据,比如,存取文件,socket操作时.这时候,可以使用python的struct模块来完成.可以用 struct来处理c ...

  5. python struct.pack()函数 (返回一个字节对象,其中包含根据格式字符串fmt打包的值v1,v2,...)

    def pack(fmt, *args): # known case of _struct.pack"""pack(fmt, v1, v2, ...) -> byt ...

  6. python struct pack解析_Python struct 详解

    最近在学习python网络编程这一块,在写简单的socket通信代码时,遇到了struct这个模块的使用,当时不太清楚这到底有和作用,后来查阅了相关资料大概了解了,在这里做一下简单的总结. 了解c语言 ...

  7. python中pack函数,python中struct.pack()函數和struct.unpack()函數

    python中的struct主要是用來處理C結構數據的,讀入時先轉換為Python的字符串類型,然后再轉換為Python的結構化類型,比如元組(tuple)啥的~.一般輸入的渠道來源於文件或者網絡的二 ...

  8. python unpack_python中struct.pack()函数和struct.unpack()函数

    python中的struct主要是用来处理C结构数据的,读入时先转换为Python的字符串类型,然后再转换为Python的结构化类型,比如元组(tuple)啥的~.一般输入的渠道来源于文件或者网络的二 ...

  9. python中pack什么意思_Python struct.pack如何理解其原理

    def setUTF(self, value): """ """ tag = '>h' if self.endian == HIGHT ...

最新文章

  1. linux执行cd会使用系统调用,深入理解Linux系统调用
  2. oracle常见问题
  3. 前端学习(1941)vue之电商管理系统电商系统之介绍分类管理的作用
  4. PK 想说爱你不容易
  5. 关于嵌套类的调用更新问题
  6. window.dialogArguments
  7. 利润表三点式审阅:以御银股份为例
  8. Hive 核心原理(hive-3.1.2)
  9. 从钉钉后台对接考勤打卡信息(仅供参考)
  10. iOS微信网页长按图片问题解决
  11. SDN与NFV技术在云数据中心的规模应用
  12. 如何破解Win7的电脑登录密码?
  13. 快的买大黄蜂是福是祸?
  14. 深度学习论文精读05——用于乳腺癌组织病理学图像分类的深度特征
  15. 该怎么去学UI设计?UI设计学习路线分享
  16. windows 同时连接多个 openvpn
  17. 运营推广-百度快照收录技巧
  18. 医院监护系统可行性分析
  19. flink sql常用函数
  20. NF网元介绍之AUSF

热门文章

  1. 清华硕士的集体逃离!中科院科研人员自白:我为什么离开北京?
  2. 就业技术书文件表格_就业协议书填写、盖章注意事项
  3. Acwing 第 91 场周赛
  4. 如何在Visio中画精准的圆弧
  5. 钢笔工具使用——路径终极教程
  6. 腾讯应届程序员开到了50万年薪?网友:装的还挺像的!
  7. 行测-判断推理-图形推理-样式规律-加减异同
  8. 为什么我的网站总是显示不安全?
  9. matlab双阶乘,Mathemaica使用教程.doc
  10. 快速实现单片机和手机蓝牙通信