Я хочу, чтобы мой скрипт ждал, пока пользователь нажмет любую клавишу.
Как я могу это сделать?
python
wait
keyboard-input
Януш
источник
источник
input
не продолжается, если нажата какая-либо клавиша, только если нажата кнопка ввода.Один из способов сделать это в Python 2, это использовать
raw_input()
:В python3 это просто
input()
источник
enter
?input()
.from six.moves import input; input("Press Enter to continue...")
На моем компьютере с Linux я использую следующий код. Это похоже на код, который я видел в другом месте (например, в старых FAQ по Python), но этот код вращается в узком цикле, где этого кода нет, и существует множество странных угловых случаев, которые код не учитывает код делает.
источник
Если у вас все в порядке в зависимости от системных команд, вы можете использовать следующее:
Linux:
Окна:
источник
system
а затем вызватьsys.exit(0)
.Просто используя
вызовет синтаксическую ошибку: ожидаемый EOF при разборе.
Простое исправление использования:
источник
input
в Python 2 - правильная функцияraw_input
. В Python 2input
эквивалентноeval(raw_input())
.Питон руководство содержит следующее:
который может быть свернут в ваш случай использования.
источник
Кроссплатформенность, код Python 2/3:
Я удалил fctl / неблокирующий материал, потому что он давал
IOError
s, и мне это не нужно. Я использую этот код специально, потому что я хочу его заблокировать. ;)Приложение:
Я реализовал это в пакете на PyPI с множеством других вкусностей, называемых консолью :
источник
Я не знаю, как это сделать независимо от платформы, но в Windows, если вы используете модуль msvcrt, вы можете использовать его функцию getch:
mscvcrt также включает неблокирующую функцию kbhit (), чтобы увидеть, была ли нажата клавиша без ожидания (не уверен, что есть соответствующая функция curses). Под UNIX есть пакет curses, но не уверен, что вы можете использовать его, не используя его для всего вывода на экран. Этот код работает под UNIX:
Обратите внимание, что curses.getch () возвращает порядковый номер нажатой клавиши, чтобы у нее был тот же вывод, что и для приведения.
источник
Если вы хотите подождать ввода (чтобы пользователь, стучавший по клавиатуре, не вызывал непредвиденных ситуаций), используйте
источник
Я новичок в Python, и я уже думал, что я слишком глуп, чтобы воспроизвести самые простые предложения, сделанные здесь. Оказывается, есть ловушка, которую нужно знать:
Когда Python-скрипт выполняется из IDLE, некоторые IO-команды ведут себя совершенно иначе (поскольку на самом деле нет оконечного окна).
Например. msvcrt.getch не блокирует и всегда возвращает $ ff. Об этом уже сообщалось давно (см., Например, https://bugs.python.org/issue9290 ) - и оно помечено как исправленное, как-то проблема, похоже, сохраняется в текущих версиях python / IDLE.
Поэтому, если какой-либо из приведенных выше кодов не работает для вас, попробуйте запустить скрипт вручную, а НЕ из IDLE .
источник
Если вы хотите увидеть, нажали ли они точную клавишу (например, скажем 'b'), сделайте следующее:
источник
os.system, кажется, всегда вызывает sh, который не распознает параметры s и n для чтения. Однако команду чтения можно передать bash:
источник