Python:io.TextIOWrapper非法换行

时间:2014-01-08 15:39:08

标签: 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'

1 个答案:

答案 0 :(得分:2)

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

  

换行符控制行结尾的处理方式。它可以是None'''\n''\r''\r\n'

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