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

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

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

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

 g.d.d.c19 июл. 2012 г., 02:29
Работать в отладчике и использовать точки останова?
 ShadowRanger09 июн. 2017 г., 03:28
@ user100464: Если это Python 3, то все в порядке;input в Py3 такой же, как Py2raw_input, Если это Py3, то, что у них есть, хорошо, хотя нет необходимости назначать возвращаемое значение, если оно никогда не использовалось.
 user10046419 июн. 2013 г., 16:47
Я новичок в этом, но в соответствии сdocs.python.org/2/library/functions.html#input, input(prompt) эквивалентноeval(raw_input(prompt)), Это, вероятно, не то, что вы хотите.

Ответы на вопрос(10)

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

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комментарии, лучшим ответом на этот точный вопрос будет:

For a long block of text, it is best to use input('Press <ENTER> to continue') (or raw_input('Press <ENTER> to continue') on Python 2.x) to prompt the user, rather than a time delay. Fast readers won't want to wait for a delay, slow readers might want more time on the delay, someone might be interrupted while reading it and want a lot more time, etc. Also, if someone uses the program a lot, he/she may become used to how it works and not need to even read the long text. It's just friendlier to let the user control how long the block of text is displayed for reading.

Решение Вопроса

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

import time
print("something")
time.sleep(5.5)    # pause 5.5 seconds
print("something")
 19 июл. 2012 г., 02:39
Просто использоватьprint отобразить длинный блок текста, а затемinput() или жеraw_input('Press <ENTER> to continue') в зависимости от вашей версии Python.
 RandomPhobia19 июл. 2012 г., 02:34
Я знаю о функции сна в модуле времени, но что, если у меня есть длинный блок текста, который я хочу, чтобы пользователь прочитал?
 19 июл. 2012 г., 04:00
Для длинного блока текста лучше всего использоватьinput() (или жеraw_input() на Python 2.x) подсказывать пользователю, а не задержку. Быстрые читатели не хотят ждать задержки, медленные читатели могут захотеть больше времени на задержке, кто-то может быть прерван во время чтения и хочет гораздо больше времени и т. Д. Кроме того, если кто-то часто использует программу, он она может привыкнуть к тому, как это работает, и ей даже не нужно читать длинный текст. Просто удобнее позволить пользователю контролировать, как долго блок текста отображается для чтения.

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...")

Итак, я нашел, что это очень хорошо работает в моих усилиях по кодированию. Я простоcreated a function в самом начале моей программы,

def pause():
    programPause = raw_input("Press the <ENTER> key to continue...")

и теперь я могу использоватьpause() функционировать всякий раз, когда мне нужно, как если бы я писал командный файл.For exampleв такой программе:

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

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

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

time.sleep (сек)

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

raw_input("Press Enter to continue ...")
exit()
 12 февр. 2018 г., 19:51
Я немного использовал этот метод, однако мне также нравится использовать его как функцию pause (), и я не думаю, что есть необходимость в exit (). def pause (): вернуть raw_input (& quot; нажмите Enter, чтобы продолжить ... & quot;)
 14 сент. 2018 г., 05:07
Определенно, как этот :) Спасибо shb2789

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

if somethinghappen:
    time.sleep(seconds)

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

Print ("This is how you pause")

input()

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

import os
os.system("pause")
 02 окт. 2015 г., 16:26
Это зависит от Windows, в то время как все существующие ответы не зависят от платформы.

Ваш ответ на вопрос