我正在尝试为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'
答案 0 :(得分:2)
您不能只使用任何字符作为换行符。来自io.TextIOWrapper()
documentation:
换行符控制行结尾的处理方式。它可以是
None
,''
,'\n'
,'\r'
和'\r\n'
。
您必须直接手动处理这些字节而不是换行符。