如何在pySerial中更改行终止符(行尾字符,EOL)

时间:2018-02-14 10:03:42

标签: python pyserial

如何在PySerial的当前版本(> 3.4)中更改行尾(EOL,有时称为TERMINATOR)字符? short intro advises to use io.TextWrapper,但我从未使用io模块,简短介绍中给出的示例与我的用例相差甚远。有更简单的方法吗?像Matlab的那样

s = serial('COM3');
s.Terminator = 'CR';
s.open()

我只是希望能够在使用readline()来表示换行符的设备上执行CR

1 个答案:

答案 0 :(得分:1)

根据您的链接调整示例,添加newline参数,如文档中所述:

>>> help(io.TextIOWrapper)
Help on class TextIOWrapper in module io:

class TextIOWrapper(_TextIOBase)
 ...
 |  
 |  newline controls how line endings are handled. It can be None, '',
 |  '\n', '\r', and '\r\n'.

修改样本:

import serial
import io
ser = serial.serial_for_url('loop://', timeout=1)
sio = io.TextIOWrapper(io.BufferedRWPair(ser, ser),newline="\r")

现在readline在遇到\r字符时停止。