Правильный способ приостановить программу Python

Я использую функцию ввода как способ приостановить мои скрипты

print("something")
wait = input("PRESS ENTER TO CONTINUE.")
print("something")

есть ли формальный способ сделать это?

10 ответов


кажется мне прекрасным (или raw_input() в Python 2.Икс.) В качестве альтернативы вы можете использовать time.sleep() Если вы хотите сделать паузу на определенное количество секунд.

import time
print("something")
time.sleep(5.5)    # pause 5.5 seconds
print("something")

использование:

import os
os.system("pause")

Я предполагаю, что вы хотите сделать паузу без ввода

использовать

времени.сон (сек)


Итак, я обнаружил, что это очень хорошо работает в моих начинаниях кодирования. Я просто создана функция в самом начале моей программы,

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


очень просто:

raw_input("Press Enter to continue ...")
exit()

Я использую следующее Для 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...")

у меня был аналогичный вопрос, и я использовал сигнал:

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. Ваша программа вызовет зарегистрированный обработчик и продолжит работу.


Как указал mhawke и stevehaкомментарии, лучший ответ на этот точный вопрос будет:

для длинного блока текста лучше всего использовать input('Press <ENTER> to continue') (или raw_input('Press <ENTER> to continue') на Python 2.x) запрашивать пользователя, а не время задержки. Быстрые читатели не хочу ждать задержки, медленные читатели могут захотеть больше времени задержка, кто-то может быть прерван во время чтения и хочет намного больше времени и т. д. Кроме того, если кто-то использует программу много, он/она возможно, привыкли, как это работает и не нужно даже читать долго текст. Это просто дружелюбнее, чтобы позволить пользователю контролировать, как долго блок текст отображается для чтения.


Print ("This is how you pause")

input()

Я думаю, что лучший способ остановить казнь это время.сна (функция). если вам нужно приостановить выполнение только в определенных случаях, вы можете просто реализовать оператор if следующим образом:

if somethinghappen:
    time.sleep(seconds)

вы можете оставить ветку else пустой.