如何从list = ['\ xbb','\ x02','\ x00','\ x11','\ xbe']

时间:2018-03-01 10:23:26

标签: python serial-port

我从串口获得了一些数据,如下所示

list_input =[ '\xbb', '\x02', '\x00', '\x11', '\xbe', '\x04', '\x00', '\x0', '\x08', '\x3', '\xb2', '\xdd', '\xd9', '\x01', '\x00', '\x00', '\x00', '\x00', '\xc4', '\x1e'] 

我想从每个元素中删除'\ x'并获得输出,如

list_output=[bb,02,00,22,be,04,00,08,dd]

如果我这样做list_input =''.join(map(str, list_input)) 我得到这个输出“ ” 43 @ “,即垃圾值。

请建议任何合适的解决方案。

1 个答案:

答案 0 :(得分:2)

字符串\xbb\x02 ecc是单个字符串。您看到的是它们的十六进制转义表示,因为代码为2的ASCII字符不是可打印字符。

看起来你真的想要这个字符所代表的数字的base-16表示,没有x前缀,因此你可以让e ord获得ASCII值然后{{ 1}}将其转换为十六进制表示:

hex

如果您不想使用>>> ord('\x02') 2 >>> ord('\xbb') 187 >>> hex(2) '0x2' >>> hex(187) '0xbb' 前缀oyu,只需使用切片删除该部分:

0x