Python3中str、bytes、bytearray转化

liftword6个月前 (01-16)技术文章38

简介

str是采用Unicode编码方式的序列,主要用于显示
bytes是字节序列,主要用于网络和文件传输
bytearray和bytes是一样的,只是它是可变的,它们的关系和str与list类似

str和bytes的相互转化就是编码和解码

str转bytes

使用函数encode

  1. In [2]: s1 = "123abc456ffff"
  2. In [4]: b = s1.encode("utf-8")
  3. In [5]: print(b)
  4. b'123abc456ffff'
  5. In [6]:

bytes转str

使用函数decode

  1. In [6]: s2 = b.decode("utf-8")
  2. In [7]: print(s2)
  3. 123abc456ffff
  4. In [8]:

如果是定义一个bytes:

  1. b = b'123abc456ffff'

bytes和str转化为bytearray

bytes和str转化为bytearray都依赖于bytearray函数

bytes --> bytearray

  1. In [8]: b = b'dafafasfasfsad22136436'
  2. In [10]: s1 = bytearray(b)
  3. In [11]: print(s1)
  4. bytearray(b'dafafasfasfsad22136436')
  5. In [12]:

str–>bytearray

  1. In [8]: b = 'dafafasfasfsad22136436'
  2. In [10]: s1 = bytearray(b)
  3. In [11]: print(s1)
  4. bytearray(b'dafafasfasfsad22136436')
  5. In [12]:

hex字符串转为bytearray

  1. In [12]: hexs = "1289"
  2. In [13]: br = bytearray.fromhex(hexs)
  3. In [14]: print(br)
  4. bytearray(b'\x12\x89')
  5. In [15]:

bytearray转为str和bytes

  1. byarray=bytearray("aabbcc",encoding='utf-8')
  2. str=byarray.decode('utf-8')
  3. bytes=bytes(byarray)
  4. print (byarray)
  5. bytearray(b'aabbcc')
  6. print(str)
  7. aabbcc
  8. print(bytes)
  9. b'aabbcc'