我有一个XBee路由器(XB-X)连接到超声波范围传感器,另一个XBee协调器(XB-Y)连接到我的PC。 XB-X将传感器读数发送到XB-Y。我试图使用Python从我的PC上的ser.read()中提取字节。
我输出了一个奇怪的字符串字符串“>>〜} 3@zi167.89”,我可能知道如何只提取浮点数(在本例中为167.89)?通过设置ser.read(size = xx)指定字节数。有没有其他方法可以做到这一点?
import serial
import zigbee
from xbee import ZigBee
import re
ser = serial.Serial("COM4", 9600)
while True:
try:
input = ser.read(20)
m = re.search(r'(\d+\.\d+)', input)
if m:
num = m.group()
# statements...
它现在正在运作,不小心将“群组”键入为“群组”。
答案 0 :(得分:0)
只需使用正则表达式:
import re
input = ser.read()
m = re.search(r'(?P<num>\d+\.\d+)', input)
if m:
num = float(m.group('num'))