Я використовував цю 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...")
Як вказували коментарі mhawke та steveha , найкращою відповіддю на це точне запитання буде:
Для довгого блоку тексту найкраще використовувати
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()
Я думаю, що мені подобається цей соль.
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...')