我通过串口接收数据包但是当我收到数据包时它是类字节,看起来像这样:
b'>0011581158NNNNYNNN +6\r'
如何将其转换为普通字符串?当我尝试从该字符串中获取信息时,它会以十进制表示形式出现。
答案 0 :(得分:1)
您可以在bytes对象上调用decode
将其转换为字符串,但只有在bytes对象实际表示文本时才有效:
>>> bs = b'>0011581158NNNNYNNN +6\r'
>>> bs.decode('utf-8')
'>0011581158NNNNYNNN +6\r'
要真正解析输入,您需要知道格式及其实际含义。为此,请确定连接到串行端口的设备(扫描仪?机器人?某种接收器?)。并查找协议。在您的情况下,可能是基于文本的协议,但您经常会发现字节代表数字,您可能希望在其中查看{ {3}}