格式化来自串行设备的 return 值

Formatting a return value from a serial device

我正在通过串口从设备读取一个值,return 值的格式为:

[理论位置mm,编码器位置mm],例如b'\r#-0.001504,-0.001516\n'

我想格式化这个 return 值并将第二个值保存到一个数组中。有谁知道我该怎么做?非常感谢任何建议。

谢谢。

新编辑:这是我的代码和输出。此时我只需要从这个字符串中提取浮点值。

    ser.write(b'1POS?\r') #command to query position
    pos = ser.readline() #read the position
    pos_str = str(pos)
    pos_splt = pos_str.split(",") 
    enc_pos = pos_splt[1]
    print(enc_pos)

输出:“-0.028970\n'”

好的,抱歉,我刚刚了解到您的: error "a bytes-like object is required, not 'str'" 意思是

这是因为您要拆分的是一个字节数组,虽然它有一个 split() 方法,但它需要一个字节数组作为参数。

现在试试这个:

pos = b'\r#-0.001504,-0.001516\n'   # Sample data from serial port

pos_splt = pos.strip().split(b",")  # the param b"," is the bytes version of ","
enc_pos = pos_splt[1]
print(float(enc_pos))

输出

-0.001516