Как приостановить и ждать ввода команды в python script

Возможно ли иметь script как в python?

...
Pause
->
Wait for the user to execute some commands in the terminal (e.g. 
  to print the value of a variable, to import a library, or whatever).
The script will keep waiting if the user does not input anything.
->
Continue execution of the remaining part of the script

По существу, script временно предоставляет управление интерпретатору командной строки python и возобновляется после того, как пользователь каким-то образом завершит эту часть.

Изменить: То, что я придумал (вдохновленный ответом), выглядит примерно так:

x = 1

i_cmd = 1
while True:
  s = raw_input('Input [{0:d}] '.format(i_cmd))
  i_cmd += 1
  n = len(s)
  if n > 0 and s.lower() == 'break'[0:n]:
    break
  exec(s)

print 'x = ', x
print 'I am out of the loop.'

Ответ 1

если вы используете python 2.x: raw_input()

python 3.x: input()

Пример:

# do some stuff in script
variable = raw_input('input something!: ')
# do stuff with variable

Ответ 2

Лучший способ, которым я это знаю, - использовать отладчик pdb. Поэтому поставьте

import pdb

в верхней части вашей программы, затем используйте

pdb.set_trace()

для вашей "паузы" В приглашении (Pdb) вы можете ввести команды, такие как

(Pdb) print 'x = ', x

и вы также можете выполнить код, хотя это не ваша цель. Когда вы закончите, просто введите

(Pdb) c 

или любое подмножество слова "продолжить", и код возобновит выполнение.

Хорошее легкое введение в отладчик с ноября 2015 года https://pythonconquerstheuniverse.wordpress.com/2009/09/10/debugging-in-python/ но, конечно, есть много таких источников, если вы используете "отладчик python" или "python pdb".

Ответ 3

Я думаю, что вы искали это:

import re

# Get user name
name = raw_input("Please enter name: ")

# While name has incorrect characters
while re.search('[^a-zA-Z\n]',name):

    # Print out an error
    print("illegal name - Please use only letters")

    # Ask for the name again (if it incorrect, while loop starts again)
    name = raw_input("Please enter name: ")

Ответ 4

Из-за SEO этого вопроса, я включаю еще один ответ, который касается "приостановки" и "ожидания".

Ожидание ввода данных пользователем для продолжения:

Функция ввода действительно остановит выполнение скрипта, пока пользователь не сделает что-то, вот пример, показывающий, как выполнение может быть продолжено вручную после просмотра предопределенных переменных, представляющих интерес:

var1 = "Interesting value to see"
print("My variable of interest is {}".format(var1))
key_pressed = input('Press ENTER to continue: ')

Продолжить после ожидания предварительно определенного времени:

Другой случай, который я считаю полезным, - это ввести задержку, чтобы я мог прочитать предыдущие выходные данные и решить ctrl + c, если я хочу, чтобы сценарий завершился в нужный момент, но продолжаю, если я ничего не делаю.

import time.sleep
var2 = "Some value I want to see"
print("My variable of interest is {}".format(var2))
print("Sleeping for 5 seconds")
time.sleep(5) # Delay for 5 seconds

Фактический отладчик для исполняемой командной строки:

Пожалуйста, смотрите ответы выше по использованию pdb для пошагового выполнения кода.

Ссылка: https://www.pythoncentral.io/pythons-time-sleep-pause-wait-sleep-stop-your-code/