Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Python: Общие вопросы > linux работа с устройствами


Автор: pythonwin 23.2.2007, 08:51
Доброе утро!

подскажите, пожалуйста, как сделать так чтобы при чтении из устройства в linux питон не ждал ответа, а сразу возвращал значение, даже если с устройством ничего не происходит?

пример:
Код

f = open('/dev/ttyMydev','r')
l = f.readlines() # здесь бывает задержка
f.close()


при этом бывает, что на l = f.readlines() программа ждет ответа от устройства, а бывает что просто возвращает текущее значение из устройва и сразу выполняет следующий оператор кода. Здесь нужен второй вариант
код один и тот же и запускается одинаково

Автор: MAKCim 23.2.2007, 09:01
в С это аргумент O_NONBLOCK в open() (возвращает -1 в случае, если запрос на чтения без блокировки не может быть удовлетворен)
или смотреть select()-ом вначале на предмет блокирования...
думаю, смотри в сторону модуля os

Автор: pythonwin 23.2.2007, 13:22
MAKCim, спасибо! smile
http://www.python.org/doc/2.3/lib/os-fd-ops.html

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)