Как заставить программу на питон ждать ввод четко определенное время?

В программе есть ввод от пользователя input() и она должна ждать его ровно минуту. Как это лучше сделать?
  • Вопрос задан
  • 2011 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Вариант для Windows может выглядеть как-то так:
import msvcrt
import time
import sys


def timed_input(caption, timeout=5):
    def echo(c):
        sys.stdout.write(c)
        sys.stdout.flush()        

    echo(caption)

    _input = []
    start = time.monotonic()
    while time.monotonic() - start < timeout:
        if msvcrt.kbhit():
            c = msvcrt.getwch()
            if ord(c) == 13:
                echo('\r\n')
                break
            _input.append(c)
            echo(c)

    if _input:
        return ''.join(_input)



v = timed_input('Введите что-нибудь за 5 секунд\n')
print('Вы ввели:', v)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы