he estado usando el input
funcionan como una forma de pausar mis scripts:
print("something")
wait = input("Press Enter to continue.")
print("something")
¿Hay una manera formal de hacer esto?
RandomFobia
he estado usando el input
funcionan como una forma de pausar mis scripts:
print("something")
wait = input("Press Enter to continue.")
print("something")
¿Hay una manera formal de hacer esto?
mhawke
Eso parece bien para mí (o raw_input()
en Python 2.X). Alternativamente, podrías usar 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")
Conozco la función de suspensión en el módulo de tiempo, pero ¿qué pasa si tengo un bloque largo de texto que quiero que el usuario lea?
– RandomFobia
19 de julio de 2012 a las 0:34
Simplemente use print
para mostrar el bloque largo de texto y luego input()
o raw_input('Press <ENTER> to continue')
según corresponda para su versión de Python.
– mhawke
19 de julio de 2012 a las 0:39
Para un bloque largo de texto, es mejor usar input()
(o raw_input()
en Python 2.x) para avisar 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 lee y quiere mucho más tiempo, etc. Además, si alguien usa mucho el programa, él/ella ella puede acostumbrarse a cómo funciona y ni siquiera necesita leer el texto largo. Es más amigable dejar que el usuario controle cuánto tiempo se muestra el bloque de texto para leer.
– steveha
19 de julio de 2012 a las 2:00
Chan Tzish
Solo para Windowsusar:
import os
os.system("pause")
Esto es específico de Windows, mientras que todas las respuestas existentes son independientes de la plataforma.
– lvc
2 oct 2015 a las 14:26
¿Por qué Python implementaría una función que es específica del sistema operativo? No tiene sentido.
– Denis
26 de octubre de 2020 a las 14:22
os.system() llama a una función del sistema llamada “pausa”: un ubuntu, por ejemplo, no sabe qué es “pausa”, por lo que regresará con: sh: 1: pausa: no encontrado
– ato
10 de noviembre de 2020 a las 11:16
Sé que esto probablemente no sea lo que quería la pregunta, pero me ayudó mucho.
– Transmitir Verano
23 de febrero de 2021 a las 3:05
Si está llamando a la secuencia de comandos de python desde un archivo por lotes de Windows, puede agregar pause
al final del archivo por lotes en lugar de poner un comando al final del archivo python, y obtendrá el mismo efecto. De esta manera, el archivo python es independiente del sistema operativo, mientras que el archivo por lotes solo podría usarse en Windows de todos modos.
–Leland Hepworth
23 de febrero de 2021 a las 22:54
Entonces, encontré que esto funciona muy bien en mis esfuerzos de codificación. Yo simplemente creó una función al principio de mi programa,
def pause():
programPause = raw_input("Press the <ENTER> key to continue...")
y ahora puedo usar el pause()
funcione siempre que lo necesite, como si estuviera escribiendo un archivo por lotes. Por ejemploen 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
Opuesto a raw_input
¿En qué se diferencia esto de lo que se indica en la pregunta?
-Peter Mortensen
8 de noviembre de 2020 a las 4:26
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>
, 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.
Sí, los motores de búsqueda llevan a esta pregunta.
-Peter Mortensen
10 abr a las 16:40
Esto requiere import time
.
-Peter Mortensen
10 abr a las 16:43
Adewole Adesola
Uso lo siguiente para Python 2 y Python 3 para pausar la ejecución del código hasta que el usuario presione Ingresar
import six
if six.PY2:
raw_input("Press the <Enter> key to continue...")
else:
input("Press the <Enter> key to continue...")
wilson
print ("This is how you pause")
input()
Como lo señalaron los comentarios de mhawke y steveha, la mejor respuesta a esta pregunta exacta sería:
Pitón 3.x:
input('Press <ENTER> to continue')
Pitón 2.x:
raw_input('Press <ENTER> to continue')
Para un bloque largo de texto, es mejor usar
input('Press <ENTER> to continue')
(oraw_input('Press <ENTER> to continue')
en Python 2.x) para avisar 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 lee y quiere mucho más tiempo, etc. Además, si alguien usa mucho el programa, él/ella ella puede acostumbrarse a cómo funciona y ni siquiera necesita leer el texto largo. Es más amigable dejar que el usuario controle cuánto tiempo se muestra el bloque de texto para leer.
Anécdota: Hubo un tiempo en que los programas usaban “pulsa [ANY] tecla para continuar”. Esto falló porque las personas se quejaban de que no podían encontrar la tecla NINGUNA en su teclado 🙂
¿Trabaja en un depurador y usa puntos de interrupción?
– gddc
19 de julio de 2012 a las 0:29