Выберите модуль, утверждая, что можно принять не более 3 аргументов (необязательный таймаут) - PullRequest
0 голосов
/ 23 февраля 2012

Я пытаюсь написать программу, которая ожидает ввода readline, но только в течение ограниченного промежутка времени для неблокирующего ввода. Из другого вопроса о стековом потоке я был предупрежден о модуле Select. Это, казалось, отвечало всем требованиям. Тем не менее, когда я пытаюсь реализовать это, следующим образом:

i,o,e = select([sys.stdin],[],[],5)

, как описано в docs.python.org, (меня интересует только ввод, и в этом примере тайм-аут 5 секунд) Я получаю сообщение об ошибке:

TypeError: select() takes at most 3 arguments (4 given)

Если я вместо этого назову это как:

i,o,e = select([sys.stdin],[],[])

Тогда я получаю:

ValueError: list of cases must be same length as list of conditions

с вызывающим модулем /usr/lib/pymodules/python2.7/numpy/lib/function_base.py строка 718. Я использую Ubuntu 11.10 с Python 2.7.2 +.

Может кто-нибудь пролить свет на это для меня? Мне действительно нужна функция тайм-аута.

1 Ответ

0 голосов
/ 23 февраля 2012

Звучит так, как будто вы вызываете numpy. select function, но вам нужна select.select .Импортируйте их соответственно.

...