He estado usando la input
función como una forma de pausar mis scripts
print("something")
wait = input("PRESS ENTER TO CONTINUE.")
print("something")
¿Hay alguna forma formal de hacer esto?
He estado usando la input
función como una forma de pausar mis scripts
print("something")
wait = input("PRESS ENTER TO CONTINUE.")
print("something")
¿Hay alguna forma formal de hacer esto?
Respuestas:
Me parece bien (o raw_input()
en Python 2.X). Alternativamente, podría usarlo time.sleep()
si desea hacer una pausa durante un cierto número de segundos.
import time
print("something")
time.sleep(5.5) # pause 5.5 seconds
print("something")
print
para mostrar el bloque de texto largo y luego input()
o raw_input('Press <ENTER> to continue')
según corresponda para su versión de Python.
input()
(o raw_input()
en Python 2.x) para solicitar al usuario, en lugar de un retraso de tiempo. Los lectores rápidos no querrán esperar un retraso, los lectores lentos pueden querer más tiempo en el retraso, alguien puede ser interrumpido mientras lo lee y desea mucho más tiempo, etc. Además, si alguien usa mucho el programa, él / ella ella puede acostumbrarse a cómo funciona y no necesitar siquiera leer el texto extenso. Es más amigable dejar que el usuario controle cuánto tiempo se muestra el bloque de texto para leer.
Para ventanas solo use:
import os
os.system("pause")
Entonces, encontré que esto funciona muy bien en mis esfuerzos de codificación. Simplemente creé una función al comienzo de mi programa,
def pause():
programPause = raw_input("Press the <ENTER> key to continue...")
y ahora puedo usar la pause()
función siempre que lo necesito, como si estuviera escribiendo un archivo por lotes. Por ejemplo , en un programa como este:
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()
Ahora, obviamente, este programa no tiene ningún objetivo y es solo para fines de ejemplo, pero puedes entender exactamente lo que quiero decir.
NOTA: Para Python 3, deberá usar input
en lugar deraw_input
He tenido una pregunta similar y estaba usando la señal:
import signal
def signal_handler(signal_number, frame):
print "Proceed ..."
signal.signal(signal.SIGINT, signal_handler)
signal.pause()
Entonces registra un controlador para la señal SIGINT y hace una pausa esperando cualquier señal. Ahora desde fuera de su programa (por ejemplo, en bash), puede ejecutar kill -2 <python_pid>
, lo que enviará la señal 2 (es decir, SIGINT) a su programa de Python. Su programa llamará a su controlador registrado y continuará ejecutándose.
signal.pause
.
Uso lo siguiente para python
2 y 3 para pausar la ejecución del código hasta que el usuario presionaENTER
import six
if six.PY2:
raw_input("Press the <ENTER> key to continue...")
else:
input("Press the <ENTER> key to continue...")
Como señalaron los comentarios de mhawke y steveha , la mejor respuesta a esta pregunta exacta sería:
Para un bloque de texto largo, es mejor usar
input('Press <ENTER> to continue')
(oraw_input('Press <ENTER> to continue')
en Python 2.x) para solicitar al usuario, en lugar de un retraso de tiempo. Los lectores rápidos no querrán esperar un retraso, los lectores lentos pueden querer más tiempo en el retraso, alguien puede ser interrumpido mientras lo lee y desea mucho más tiempo, etc. Además, si alguien usa mucho el programa, él / ella ella puede acostumbrarse a cómo funciona y no necesitar siquiera leer el texto extenso. Es más amigable dejar que el usuario controle cuánto tiempo se muestra el bloque de texto para leer.
Muy simple:
raw_input("Press Enter to continue ...")
exit()
NameError: name 'raw_input' is not defined
Print ("This is how you pause")
input()
Creo que me gusta esta solución.
import getpass
getpass.getpass("Press Enter to Continue")
Oculta lo que escriba el usuario, lo que ayuda a aclarar que la entrada no se usa aquí.
Pero tenga en cuenta que en la plataforma OSX muestra una clave que puede ser confusa.
Probablemente la mejor solución sería hacer algo similar al módulo getpass usted mismo, sin hacer una read -s
llamada. ¿Quizás hacer que el color fg coincida con el bg?
Con este método, puede reanudar su programa simplemente presionando cualquier tecla especificada que haya especificado que:
import keyboard
while True:
key = keyboard.read_key()
if key == 'space': # you can put any key you like instead of 'space'
break
mismo método pero de otra manera:
import keyboard
while True:
if keyboard.is_pressed('space'): # same, you can put any key you like instead of 'space'
break
Nota: puede instalar el keyboard
módulo simplemente escribiendo esto en su shell o cmd:
pip install keyboard
import os, sys
if sys.platform == 'win32':
os.system('pause')
else:
input('Press any key to continue...')