Python:io.TextIOWrapper 非法换行符

标签 python pyserial

我正在尝试为 SiRF 二进制消息设置换行符,但 IO 包装器似乎不接受换行符。

代码:

import serial
import io

port = serial.Serial(port='/dev/ttyUSB0', baudrate=4800, timeout=2)
sio = io.TextIOWrapper(io.BufferedRWPair(port, port), newline='\xb0\xb3')

输出:

>>> sio = io.TextIOWrapper(io.BufferedRWPair(port, port, 1), newline='\xb3')
Traceback (most recent call last):
   File "<stdin>", line 1, in <module>
ValueError: illegal newline value: �
>>>

注意:它接受 '\x0d'

最佳答案

您不能只使用任何字符作为换行符。来自 io.TextIOWrapper() documentation :

newline controls how line endings are handled. It can be None, '', '\n', '\r', and '\r\n'.

您必须手动处理这些字节,而不是直接处理换行符。

关于Python:io.TextIOWrapper 非法换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21000040/

相关文章:

python - 是否有推荐的多行导入格式?

python - Django 固定装置具有所有可能的组合?

python - tensorflow einsum 的跟踪错误吗?

python - Numpy/Python 数组值错误

python - 如何使用 pyserial 和 picocom 打印仅十六进制缓冲区?

python - 一对一串行通信

python - pandasql 无法在函数 python pandas 中工作

python - 如何获取 keras 模型的输出作为数值,而不是 Tensor 对象?

node.js - 使用 (DR)STRACE 比较 Windows 程序执行

python - 将字节解码为 ascii 字符串