python根据字符分割,python按特定字符分割字符串
Python模块——struct(字节流,打包和解包的实现)
标签:python结构字符串a2格式it分类:Python
我们知道python只定义了六种数据类型,字符串、整数、浮点数、列表、元组、字典。但是C语言中有一些字节变量。如何用python实现它们?这一点非常重要,尤其是对于网络上的数据传输。
Python提供了一个struct模块来提供转换。以下是本模块中的一些方法。
struct.pack():
Struct.pack用于根据格式化符号将Python值转换为字符串(因为Python中没有字节类型,所以这里的字符串可以理解为字节。
流或字节数组)。函数的原型是struct.pack(fmt,v1,v2,
.),参数fmt是一个格式字符串,下面介绍格式字符串的相关信息。v1,v2,
.指示要转换的python值。下面的示例将两个整数转换为一个字符串(字节流):
导入结构
a=20
b=400
Str=struct.pack(ii ,a,b) #转换成字节流,仍然是字符串,但是可以在网络上传输。
Print (str) # ii表示两个整数。
8 #你可以看到长度是8个字节,正好是两个int数据的长度。
打印字符串
#二进制是乱码。
打印报告(字符串)
\ X14 \ x00 \ x00 \ x90 \ x01 \ x00 \ x00 #其中十六进制的0x00000014、0x00001009分别代表20和400。
由此,我们可以任意打包。例如,以下包装示例仅介绍包装。
format=!HH%ds % len(数据)
buffer=struct.pack(格式、操作码、块号、数据)
我们需要打包一段数据并添加一些头。根据下面的格式信息,我们知道H是无符号short,2字节,而S是char。所以这个缓冲区是2字节的操作码,2字节的blocknumber,len long char。
struct.unpack():
然后我们上面的例子运行:
a1,a2=struct.unpack(ii ,str)
打印“a1”,a1
a1 20
打印 a2=,a2
a2=400
可以看到“ii”分为四个字节,8字节的str分为两个int整数。
Struct.calcsize():用于计算特定格式的输出大小。它是几个字节,比如:
struct.calcsize(HH4s )
八
struct.calcsize(ii )
八
format=!HH % ds“% len( hello python )
struct.calcsize(格式)
16
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。