将字节字符串转换为字节或bytearray

IAb*_*act 9 python byte bytearray

我有一个字符串如下:

  b'\x00\x00\x00\x00\x07\x80\x00\x03'
Run Code Online (Sandbox Code Playgroud)

如何将其转换为字节数组?...并从字节回到一个字符串?

小智 15

在python 3中:

>>> a=b'\x00\x00\x00\x00\x07\x80\x00\x03'
>>> b = list(a)
>>> b
[0, 0, 0, 0, 7, 128, 0, 3]
>>> c = bytes(b)
>>> c
b'\x00\x00\x00\x00\x07\x80\x00\x03'
>>>
Run Code Online (Sandbox Code Playgroud)

  • 我刚刚意识到 `b'\x00\x00\x00\x00\x07\x80\x00\x03'` 是可迭代的。谢谢。 (2认同)
  • 注意:使用列表`b = list(a)`允许(错误地)`b [5] = 1550`,因为b**不是**字节数组.但是,如果`b = bytearray(a)`,那么`b [5] = 1550`给出错误,因为1550不是一个字节. (2认同)

Raf*_*ero 5

从字符串到字节数组:

a = bytearray.fromhex('00 00 00 00 07 80 00 03')
Run Code Online (Sandbox Code Playgroud)

要么

a = bytearray(b'\x00\x00\x00\x00\x07\x80\x00\x03')
Run Code Online (Sandbox Code Playgroud)

然后返回字符串:

key = ''.join(chr(x) for x in a)
Run Code Online (Sandbox Code Playgroud)