LINUX.ORG.RU

[Python 2.7] pyserial


0

1

на 2.6 все прекрасно работало
ser = serial.Serial()
ser.write('Hello')
ser.readline(Size=None,eol=chr(03))

а щас выдает ошибку
File «/srv/http/touch/fisk.py», line 80, in send_to_FR
otvet = ser.readline(size=None,eol=chr(03))
TypeError: readline() takes no keyword arguments

смотрел исходники
/usr/lib/python2.7/site-packages/serial/serialutil.py

def readline(self, size=None, eol=LF):
«„„read a line which is terminated with end-of-line (eol) character
('\n' by default) or until timeout.““»

так почему всетаки ошибка? Помогите плиз а то я запарился выставлять по timeout

Н так она ж говорит, не поддерживает функа именованные аргументы

pylin ★★★★★ ()

так почему всетаки ошибка?

В 2.7 для реализации файлового интерфейса используется io.RawIOBase, у которого, в отличие от самописного велосипеда, readline не принимает именованные параметры.

baverman ★★★ ()
Ответ на: комментарий от paulig_by

Как можно выкрутиться?

Я бы просто скопипастил serialutil.FileLike.readline к себе в проект. Или как отдельную функцию или пропатчил бы ей класс Serial, но последнее чревато, надо аккуратным быть. Тем более что реализация там тривиальная.

baverman ★★★ ()
Ответ на: комментарий от provaton

Использовать неименованные параметры, не?

Не, ТСу нужен нестандартный разделитель линий.

baverman ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.