【发布时间】:2016-02-10 09:01:50
【问题描述】:
我有一个字符串如下:
b'\x00\x00\x00\x00\x07\x80\x00\x03'
如何将其转换为字节数组? ...然后从字节返回字符串?
【问题讨论】:
我有一个字符串如下:
b'\x00\x00\x00\x00\x07\x80\x00\x03'
如何将其转换为字节数组? ...然后从字节返回字符串?
【问题讨论】:
在 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'
>>>
【讨论】:
b'\x00\x00\x00\x00\x07\x80\x00\x03' 是可迭代的。谢谢。
b = list(a) 允许(错误地)b[5] = 1550,因为 b 不是字节数组。但是,如果 b = bytearray(a) ,那么 b[5] = 1550 会报错,因为 1550 不是一个字节。
从字符串到字节数组:
a = bytearray.fromhex('00 00 00 00 07 80 00 03')
或
a = bytearray(b'\x00\x00\x00\x00\x07\x80\x00\x03')
然后返回字符串:
key = ''.join(chr(x) for x in a)
【讨论】:
\x?