我有一个XBee路由器( XBee )连接到超声波测距传感器和另一个XBee协调器(XBee)连接到我的PC。XB将把传感器读数发送给XB。我正在尝试使用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...它现在起作用了,漫不经心地把“组”打成“组”。
发布于 2014-04-02 07:58:14
只需使用正则表达式:
import re
input = ser.read()
m = re.search(r'(?P<num>\d+\.\d+)', input)
if m:
num = float(m.group('num'))https://stackoverflow.com/questions/22804859
复制相似问题