python3.6 serial.Serial 类的 没有eol 参数
时间: 2024-01-19 18:04:09 浏览: 105
非常抱歉,我的之前的回答有误。在 Python 3.6 中,`serial.Serial` 类确实没有 `eol` 参数。因此,如果您需要指定换行符,可以使用 `io.TextIOWrapper` 类来对串口进行包装。具体做法如下:
```
import serial
import io
ser = serial.Serial('/dev/ttyUSB0', 9600, timeout=1)
sio = io.TextIOWrapper(io.BufferedRWPair(ser, ser), newline='\r\n')
while True:
line = sio.readline()
if line:
print(line.strip())
```
在上面的代码中,`serial.Serial` 类被用来打开串口,然后使用 `io.BufferedRWPair` 类将串口对象转换为缓冲读写对象。接着,使用 `io.TextIOWrapper` 类对缓冲读写对象进行包装,设置 `newline` 参数为 `\r\n`,即可指定换行符。最后,使用 `sio.readline()` 方法读取数据,并使用 `strip()` 方法去掉字符串末尾的空格和换行符。
希望我的回答能够帮到您!
相关问题
python3.6 serial.Serial 类的 没用eol
如果您没有设置 `eol` 参数,那么 `serial.Serial` 类默认使用 `'\n'` 作为换行符。因此,当您使用 `ser.readlines()` 方法读取数据时,读取到的数据末尾会自动去掉 `\n` 作为换行符。例如:
```
import serial
ser = serial.Serial('/dev/ttyUSB0', 9600, timeout=1)
while True:
lines = ser.readlines()
for line in lines:
print(line.decode().strip())
```
在上面的代码中,`eol` 参数没有被设置,因此 `serial.Serial` 类默认使用 `'\n'` 作为换行符。当您使用 `ser.readlines()` 方法读取数据时,读取到的数据末尾会自动去掉 `\n` 作为换行符。同时,使用 `strip()` 方法去掉字符串末尾的空格和换行符,再使用 `decode()` 方法将字节字符串转换为普通字符串。
希望我的回答能够帮到您!
python3.6 ser.readlines()使用“\r\n”作为换行
您好!在使用 `ser.readlines()` 方法读取数据时,可以通过设置 `serial.Serial` 类的 `eol` 参数来指定换行符。在您的情况下,可以将 `eol` 参数设置为 `b'\r\n'`,即 `\r\n` 的字节表示。例如:
```
import serial
ser = serial.Serial('/dev/ttyUSB0', 9600, timeout=1, eol=b'\r\n')
while True:
line = ser.readline()
if line:
print(line.decode().strip())
```
在上面的代码中,`eol` 参数被设置为 `b'\r\n'`,这样当您使用 `ser.readline()` 方法读取数据时,读取到的数据末尾会自动去掉 `\r\n` 作为换行符。同时,使用 `strip()` 方法去掉字符串末尾的空格和换行符,再使用 `decode()` 方法将字节字符串转换为普通字符串。
希望我的回答能够帮到您!
阅读全文