我从串口获得了一些数据,如下所示
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 @ “,即垃圾值。
请建议任何合适的解决方案。
答案 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