Python struct.pack(“!dHHHH%ds“%len(self.data),tt,0,self.tap_lenght,self.tap_type,0,_data)里的%ds是什么意思
今天在看一段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是什么意思相关推荐
- python struct pack解析_python struct pack
这个struct主要是用来处理C结构数据的,读入时先转换为Python的字符串类型,然后再转换为Python的结构化类型,比如元组(tuple)啥的~ 一般输入的渠道来源于文件或者网络的二进制流. 在 ...
- python struct pack一个数组_Python中struct.pack的一个疑问
展开全部 的确很奇怪.我试验了10几分钟,你按下面的方法来做就可以正确.import struct zzz = ("{Type:2}").encode("utf-8&qu ...
- python struct pack string_struct (String) – Python 中文开发手册
Python 中文开发手册 struct (String) - Python 中文开发手册 该模块执行Python值与C结构之间的转换,表示为Python字符串.这可用于处理存储在文件或网络连接中的二 ...
- python struct pack string_python struct pack fmt格式
Python使用struct处理二进制 有的时候需要用python处理二进制数据,比如,存取文件,socket操作时.这时候,可以使用python的struct模块来完成.可以用 struct来处理c ...
- python struct.pack()函数 (返回一个字节对象,其中包含根据格式字符串fmt打包的值v1,v2,...)
def pack(fmt, *args): # known case of _struct.pack"""pack(fmt, v1, v2, ...) -> byt ...
- python struct pack解析_Python struct 详解
最近在学习python网络编程这一块,在写简单的socket通信代码时,遇到了struct这个模块的使用,当时不太清楚这到底有和作用,后来查阅了相关资料大概了解了,在这里做一下简单的总结. 了解c语言 ...
- python中pack函数,python中struct.pack()函數和struct.unpack()函數
python中的struct主要是用來處理C結構數據的,讀入時先轉換為Python的字符串類型,然后再轉換為Python的結構化類型,比如元組(tuple)啥的~.一般輸入的渠道來源於文件或者網絡的二 ...
- python unpack_python中struct.pack()函数和struct.unpack()函数
python中的struct主要是用来处理C结构数据的,读入时先转换为Python的字符串类型,然后再转换为Python的结构化类型,比如元组(tuple)啥的~.一般输入的渠道来源于文件或者网络的二 ...
- python中pack什么意思_Python struct.pack如何理解其原理
def setUTF(self, value): """ """ tag = '>h' if self.endian == HIGHT ...
最新文章
- linux执行cd会使用系统调用,深入理解Linux系统调用
- oracle常见问题
- 前端学习(1941)vue之电商管理系统电商系统之介绍分类管理的作用
- PK 想说爱你不容易
- 关于嵌套类的调用更新问题
- window.dialogArguments
- 利润表三点式审阅:以御银股份为例
- Hive 核心原理(hive-3.1.2)
- 从钉钉后台对接考勤打卡信息(仅供参考)
- iOS微信网页长按图片问题解决
- SDN与NFV技术在云数据中心的规模应用
- 如何破解Win7的电脑登录密码?
- 快的买大黄蜂是福是祸?
- 深度学习论文精读05——用于乳腺癌组织病理学图像分类的深度特征
- 该怎么去学UI设计?UI设计学习路线分享
- windows 同时连接多个 openvpn
- 运营推广-百度快照收录技巧
- 医院监护系统可行性分析
- flink sql常用函数
- NF网元介绍之AUSF