python根据字符分割,python按特定字符分割字符串

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: