Как проверить есть ли данные для чтения в sys.stdin, чтобы программа не останавливалась в ожидании ввода, если их нет.
Ответ
Можно посмотреть, что происходит, если timeout близкий к нулю передать в input_with_timeout(). На Unix, чтобы узнать есть ли данные для чтения:
import select
ready, _, _ = select.select([sys.stdin], [],[], 0)
На Windows, при вводе с консоли:
import msvcrt
ready = msvcrt.kbhit()
В качестве альтернативы, можно использовать асинхронный ввод/вывод (потоки, asyncio, O_NONBLOCK). Примеры для неблокирующего чтения вывода внешней команды
Комментариев нет:
Отправить комментарий