Я использовал input
функцию как способ приостановить свои сценарии
print("something")
wait = input("PRESS ENTER TO CONTINUE.")
print("something")
Есть ли формальный способ сделать это?
Я использовал input
функцию как способ приостановить свои сценарии
print("something")
wait = input("PRESS ENTER TO CONTINUE.")
print("something")
Есть ли формальный способ сделать это?
Ответы:
Кажется, хорошо для меня (или raw_input()
в Python 2.X). В качестве альтернативы вы можете использовать, time.sleep()
если вы хотите сделать паузу на определенное количество секунд.
import time
print("something")
time.sleep(5.5) # pause 5.5 seconds
print("something")
print
для отображения длинного блока текста, а затем input()
или raw_input('Press <ENTER> to continue')
в зависимости от вашей версии Python.
input()
(или raw_input()
на Python 2.x), чтобы подсказывать пользователю, а не задержку. Быстрые читатели не захотят ждать задержки, медленные читатели могут захотеть больше времени на задержку, кто-то может быть прерван во время чтения, и ему нужно гораздо больше времени и т. Д. Кроме того, если кто-то часто использует программу, он / она она может привыкнуть к тому, как это работает, и ей даже не нужно читать длинный текст. Просто удобнее позволить пользователю контролировать, как долго блок текста отображается для чтения.
Так что я нашел, что это очень хорошо работает в моих усилиях по кодированию. Я просто создал функцию в самом начале моей программы,
def pause():
programPause = raw_input("Press the <ENTER> key to continue...")
и теперь я могу использовать эту pause()
функцию всякий раз, когда мне нужно, как если бы я писал командный файл. Например , в такой программе:
import os
import system
def pause():
programPause = raw_input("Press the <ENTER> key to continue...")
print("Think about what you ate for dinner last night...")
pause()
Очевидно, что эта программа не имеет цели и предназначена только для примера, но вы можете точно понять, что я имею в виду.
ПРИМЕЧАНИЕ: для Python 3 вам нужно будет использовать input
вместоraw_input
У меня был похожий вопрос, и я использовал сигнал:
import signal
def signal_handler(signal_number, frame):
print "Proceed ..."
signal.signal(signal.SIGINT, signal_handler)
signal.pause()
Таким образом, вы регистрируете обработчик для сигнала SIGINT и приостанавливаете ожидание любого сигнала. Теперь из-за пределов вашей программы (например, в bash) вы можете запустить kill -2 <python_pid>
, что отправит сигнал 2 (т.е. SIGINT) в вашу программу на python. Ваша программа вызовет ваш зарегистрированный обработчик и продолжит работу.
signal.pause
.
Я использую следующее для python
2 и 3, чтобы приостановить выполнение кода, пока пользователь не нажметENTER
import six
if six.PY2:
raw_input("Press the <ENTER> key to continue...")
else:
input("Press the <ENTER> key to continue...")
Как указано в комментариях Мхавке и Стивехи , лучшим ответом на этот точный вопрос будет:
Для длинного блока текста лучше использовать
input('Press <ENTER> to continue')
(илиraw_input('Press <ENTER> to continue')
на Python 2.x), чтобы подсказывать пользователю, а не задержку. Быстрые читатели не захотят ждать задержки, медленные читатели могут захотеть больше времени на задержку, кто-то может быть прерван во время чтения, и ему нужно гораздо больше времени и т. Д. Кроме того, если кто-то часто использует программу, он / она она может привыкнуть к тому, как это работает, и ей даже не нужно читать длинный текст. Просто удобнее позволить пользователю контролировать, как долго блок текста отображается для чтения.
Очень просто:
raw_input("Press Enter to continue ...")
exit()
NameError: name 'raw_input' is not defined
Print ("This is how you pause")
input()
я думаю, что лучший способ остановить выполнение - это функция time.sleep (). если вам нужно приостановить выполнение только в определенных случаях, вы можете просто реализовать оператор if следующим образом:
if somethinghappen:
time.sleep(seconds)
Вы можете оставить ветку else пустой.
Я думаю, что мне нравится этот soln.
import getpass
getpass.getpass("Press Enter to Continue")
Он скрывает все, что вводит пользователь, что помогает уточнить, что ввод здесь не используется.
Но будьте внимательны на платформе OSX, она отображает ключ, который может сбить с толку.
Вероятно, лучшим решением было бы сделать что-то похожее на модуль getpass, не совершая read -s
вызова. Может быть, чтобы цвет fg соответствовал bg?
С помощью этого метода вы можете возобновить свою программу, просто нажав любую указанную вами клавишу, которая:
import keyboard
while True:
key = keyboard.read_key()
if key == 'space': # you can put any key you like instead of 'space'
break
тот же метод, но по-другому:
import keyboard
while True:
if keyboard.is_pressed('space'): # same, you can put any key you like instead of 'space'
break
Примечание: вы можете установить keyboard
модуль просто написав это в вашей оболочке или cmd:
pip install keyboard
import os, sys
if sys.platform == 'win32':
os.system('pause')
else:
input('Press any key to continue...')