python2.7中的pyserial.readline()
我正在使用Python2.7.2和PySerial2.6。 当与字符不是eol的设备通话时,使用pyserial.readline的最佳方式是什么?报告指出,pyserial.readline在python 2.6+中不再采用“eol=”参数,但建议使用io.TextIOWrapper,如下所示: ser=serial.serial_用于_url'loop://',超时=1 sio=io.TextIOWrapperio.BufferedRWPairser,ser 然而,python特别警告不要使用这种方法,称BufferedRWPair不会尝试同步对其底层原始流的访问。你不应该把它作为读者和作者的同一个对象传递;改用BufferedRandom 有人能指出pyserial.readline使用“eol”以外的eol的工作示例吗 谢谢,python2.7中的pyserial.readline(),python,python-2.7,pyserial,Python,Python 2.7,Pyserial,我正在使用Python2.7.2和PySerial2.6。 当与字符不是eol的设备通话时,使用pyserial.readline的最佳方式是什么?报告指出,pyserial.readline在python 2.6+中不再采用“eol=”参数,但建议使用io.TextIOWrapper,如下所示: ser=serial.serial_用于_url'loop://',超时=1 sio=io.TextIOWrapperio.BufferedRWPairser,ser 然而,python特别警告不要使
Tomread有一个用户可设置的最大大小,用于读取位中的数据,如果您的数据字符串是可预测的长度,您可以简单地将其设置为捕获固定长度的字符串。它在执行中有点像“肯塔基偏差”,但只要数据字符串大小一致,它就不会出错 除此之外,您真正的选择是捕获数据流并将其写入另一个文件,然后手动/编程地拆分条目
例如,可以将数据流写入.csv文件,并将分隔符变量调整为EoL字符 假设s是一个开放的serial.serial对象,换行符为\r\n。 然后,它将读取到行尾,并将“\r”之前的所有内容作为字符串返回
def read_value(encoded_command):
s.write(encoded_command)
temp = ''
response = ''
while '\r' not in response:
response = s.read().decode()
temp = temp + response
return temp
顺便说一句,我实现了您上面提到的io.TextIOWrapper建议,它1速度慢得多,2有些方法可以关闭端口。您可以自己使用read和split行。