Python wait x secs для ключа и продолжения выполнения, если не нажата

Я n00b для python, и я ищу фрагмент кода / образец, который выполняет следующие действия:

  • Отобразите сообщение типа «Нажмите любую клавишу, чтобы настроить или ждать X секунд для продолжения»
  • Подождите, например, 5 секунд и продолжите выполнение, или введите подпрограмму configure (), если нажата клавиша.

Спасибо за помощь!

Yvan Janssens

  • webdriver ждет появления одного из нескольких элементов
  • @ asyncio.coroutine против async def
  • Команда Python popen. Подождите, пока команда не будет завершена.
  • Как подождать некоторое время в pygame?
  • Как заставить python ждать нажатой клавиши
  • Java FluentWait в Python
  • Настроить реальный тайм-аут для загрузки страницы в Selenium WebDriver?
  • Ожидание анимации «...», чтобы появляться снова и снова
  • 3 Solutions collect form web for “Python wait x secs для ключа и продолжения выполнения, если не нажата”

    Если вы работаете в Unix / Linux, то модуль select поможет вам.

    import sys from select import select print "Press any key to configure or wait 5 seconds..." timeout = 5 rlist, wlist, xlist = select([sys.stdin], [], [], timeout) if rlist: print "Config selected..." else: print "Timed out..." 

    Если вы работаете в Windows, загляните в модуль msvcrt . (Обратите внимание, что это не работает в IDLE, но будет в командной строке cmd)

     import sys, time, msvcrt timeout = 5 startTime = time.time() inp = None print "Press any key to configure or wait 5 seconds... " while True: if msvcrt.kbhit(): inp = msvcrt.getch() break elif time.time() - startTime > timeout: break if inp: print "Config selected..." else: print "Timed out..." 

    Изменить Изменены образцы кода, чтобы вы могли определить, был ли тайм-аут или нажатие клавиши …

    У Python нет стандартного способа поймать это, он получает ввод с клавиатуры только через input () и raw_input ().

    Если вы действительно этого хотите, вы можете использовать Tkinter или pygame, чтобы поймать нажатия клавиш как «события». Существуют также некоторые решения для платформы, такие как pyHook. Но если это не совсем важно для вашей программы, я предлагаю вам заставить ее работать по-другому.

    Если вы комбинируете time.sleep, threading.Thread и sys.stdin.read, вы можете легко подождать определенное количество времени для ввода, а затем продолжить.

     t = threading.Thread(target=sys.stdin.read(1) args=(1,)) t.start() time.sleep(5) t.join() 
    Interesting Posts

    Использование scikit Random Forest sample_weights

    Как расширить класс класса Python

    python scrapy как закодировать параметр вместо использования cmd: использовать пользовательский код в Scrapy

    Прочитайте небольшой случайный образец из большого CSV-файла в фрейм данных Python

    Доступ к элементам в заказе

    Несколько форм и форм в CreateView

    Методы расширения в Python

    Пространства имен в C # vs import в Java и Python

    Минимизировать размер дистрибутива python

    Получение "msg: Не удалось найти требуемый исполняемый файл easy_install" при попытке вызвать бродячий экземпляр с невозможным

    Тест-драйв Django не находит тесты

    как изменить переменную системного пути в скрипте python?

    Есть ли способ получить доступ к клавиатуре в Windows без предоставления мастер-пароля?

    Python Pandas – читать файл csv, содержащий несколько таблиц

    Как инициализировать переменные в None / Undefined и сравнивать с другими переменными в Python?

    Python - лучший язык программирования в мире.