如何从list = ['\ xbb','\ x02','\ x00','\ x11','\ xbe']中删除'\ x'

问题描述 投票:-1回答:1

我有一些来自串口的数据如下

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 @ “,即垃圾值。

请提出任何合适的解决方案

python serial-port
1个回答
2
投票

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

看起来你真的想要这个字符所代表的数字的base-16表示,没有x前缀,因此你可以使用eord获取ASCII值,然后hex将其转换为十六进制表示:

>>> ord('\x02')
2
>>> ord('\xbb')
187
>>> hex(2)
'0x2'
>>> hex(187)
'0xbb'

如果你不想要qazxsw poi前缀,你可以使用切片来删除那部分:

0x
© www.soinside.com 2019 - 2024. All rights reserved.