python拆分字节字符串

2024-05-10 19:48:11 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我在Python上为我的秤写了一段代码,它通过一个RS232端口连接到我的计算机上。现在我用下面的代码来处理这个部分:

import serial

while True:
    ser = serial.Serial('COM2', 9600, timeout = 1)
    print(ser.name)
    ser.write(b'w')
    line = ser.readline()
    print(line)
    ser.close()

每当我以字节为单位向刻度发送“w”时,它就会发回值。看起来像这样:

^{pr2}$

它首先打印com端口的名称,并在下一行打印接收到的数据。然而。我想将值(数字)隔离为int

我尝试使用:

line = ser.readline()[:-6]
int(line)

这将清除所有垃圾“kg\r\n”。只剩下数字了。但当然,Python不允许我将字节字符串更改为整数。这可能是一个愚蠢的初学者的问题,就像我的另外两个帖子一样,但请忍受我,我只编写了大约两个星期的代码。在


Tags: 端口代码importtruereadline字节计算机line
1条回答
网友
1楼 · 发布于 2024-05-10 19:48:11

你猜你必须把一个串行二进制读入的字节转换成一个字符串,你可以进一步分析它。在这里应该使用bytes.decode("ascii")(看不到奇怪的字符)。在

然后,转换为float,而不是int。另外,如果知道第一个字段是您的值,则使用str.split对更改更为可靠:

>>> line = b'       0.000 kg \r\n'
>>> value = float(line.split()[0].decode("ascii"))

结果是0.0

相关问题 更多 >