Pyserial将字节转换为普通字符串

时间:2014-07-21 18:46:02

标签: python-3.x pyserial

我通过串口接收数据包但是当我收到数据包时它是类字节,看起来像这样:

b'>0011581158NNNNYNNN  +6\r'

如何将其转换为普通字符串?当我尝试从该字符串中获取信息时,它会以十进制表示形式出现。

1 个答案:

答案 0 :(得分:1)

您可以在bytes对象上调用decode将其转换为字符串,但只有在bytes对象实际表示文本时才有效:

>>> bs = b'>0011581158NNNNYNNN  +6\r'
>>> bs.decode('utf-8')
'>0011581158NNNNYNNN  +6\r'

要真正解析输入,您需要知道格式及其实际含义。为此,请确定连接到串行端口的设备(扫描仪?机器人?某种接收器?)。并查找协议。在您的情况下,可能是基于文本的协议,但您经常会发现字节代表数字,您可能希望在其中查看{ {3}}