Дополнительно
Как заставить python ждать нажатия клавиши
Я хочу, чтобы мой скрипт ждал, пока пользователь не нажмет любую клавишу.
Как мне это сделать?
496
12
В Python 3 не существует
raw_input()
. Поэтому просто используйте:В Python 2 следует использовать
raw_input()
, посколькуinput(prompt)
эквивалентенeval(raw_input(prompt))
:Однако эта функция ожидает только нажатия пользователем клавиши Enter, поэтому лучше использовать msvcrt ((Только для Windows/DOS) Модуль msvcrt предоставляет доступ к ряду функций библиотеки Microsoft Visual C/C++ Runtime Library (MSVCRT)):
Это должно дождаться нажатия клавиши.
Один из способов сделать это в Python 2 - использовать
raw_input()
:В python3 это просто
input()
.На мою Linux, я использую следующий код. Это похоже на код, который я'вэ видел в другом месте (в старом питоне часто задаваемые вопросы, например), но этот код крутится в непрерывном цикле, где этот код не'т и существует множество пограничные случаи, что код не'т объяснить, что этот код делает.
Если вы согласны с в зависимости от системы команд вы можете использовать следующие:
Линукс:
Окна:
Просто используя
вызывает синтаксис ошибка: ожидается ВФ при синтаксическом анализе.
Простое использование:
В [руководстве] python 1 приведено следующее:
которые могут быть использованы в вашем случае.
Я не'т знаю независимым от платформы способом это делать, но под Windows, Если вы используете модуль библиотеки msvcrt, вы можете использовать свою функцию геч:
mscvcrt также включает неблокирующий kbhit() функцию, чтобы увидеть, если ключ был нажат без ожидания (не уверен, если там'с соответствующей функцией проклятий). Под Unix, есть пакет проклятия, но не уверен, если вы можете использовать его, не используя его для вывода на экран. Этот код работает под Unix:
Обратите внимание, что проклятия.функцией getch() возвращает порядковый номер нажатой клавиши так, чтобы сделать его имеют тот же вывод я должен был бросить его.
Кросс-платформенный код на Python 2/3:
Я снял fctl/неблокирующий вещи, потому что это дает `IOError и я вовсе'т это нужно. Я'м, используя этот код специально, потому что я хочу, чтобы это заблокировать. ;)
Если вы хотите ждать введите (так пользователя стук клавиатуры не вызывает что-случиться) использовать
Я новичок в Python и я уже думал, что я слишком глуп, чтобы воспроизводить простейшие предложения здесь. Оказывается, там'ы ловушка один должен знать:
Когда питон-скрипт выполняется от простоя, некоторые ИО-команды, кажется, ведут себя совершенно иначе (как там на самом деле нет окна терминала).
Например. библиотеки msvcrt.геч неблокирует и всегда возвращает $ФФ. Об этом уже сообщили давно (см., например, https://bugs.python.org/issue9290 ) - и он'ы отмечены как постоянные, то проблема, похоже, сохранится в текущей версии Python/простоя.
Так что если он код выложил выше не't работа для вас, попробуйте запустить скрипт вручную, а не из праздного.
Если вы хотите, чтобы увидеть, если они давят точный ключ (как говорят 'б') этого:
ОС.система, кажется, всегда ссылаться на Ш., которая не признает S и N вариантов для чтения. Однако команда чтения может быть передан на баш: