将一串 bytearray 转换为 bytearray

convert a string of bytearray to a bytearray

我有一个 bytearray 字符串,我想在 python 3

中将其转换为 bytearray

例如,

x = "\x01\x02\x03\x04"

我从服务器获取到x变量,它是一个字符串,但内容是字节数组,如何将它转换成字节数组。真的坚持了下来。谢谢

您可以将字符串 encode 转换为 bytes 对象并将其转换为 bytearray,或者直接将其转换为某种编码。

x = "\x01\x02\x03\x04"      # type: str
y = x.encode()              # type: bytes
a = bytearray(x.encode())   # type: bytearray
b = bytearray(x, 'utf-8')   # type: bytearray

注意bytearray(:str, ...) is specified to use str.encode,所以后面两个实际上是一样的。主要区别在于您必须明确指定编码。

您可以使用ord将字符串中的每个字节转换为整数。 bytearray 接受整数的可迭代作为参数,所以

x = "\x01\x02\x03\x04"
b = bytearray(ord(c) for c in x) # bytearray(b'\x01\x02\x03\x04')

试试这个:

x = bytes(x, 'utf-8')

现在 type(x) 是字节。