Manera correcta de pausar el progtwig Python

He estado usando la función de entrada como una forma de pausar mis scripts

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

¿Hay una manera formal de hacer esto?

Me parece bien (o raw_input() en Python 2.X). Alternativamente, puede usar time.sleep() si desea hacer una pausa por un cierto número de segundos.

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

utilizar:

 import os os.system("pause") 

Supongo que quieres hacer una pausa sin entrada

Utilizar

time.sleep (secs)

Por lo tanto, encontré que esto funciona muy bien en mis esfuerzos de encoding. Simplemente creé una función al principio de mi progtwig,

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

y ahora puedo usar la función de pause() siempre que lo necesite, como si estuviera escribiendo un archivo por lotes. Por ejemplo , en un progtwig como este:

 import os import system def pause(): programPause = raw_input("Press the  key to continue...") print("Think about what you ate for dinner last night...") pause() 

Ahora, obviamente, este progtwig no tiene ningún objective y es solo para fines de ejemplo, pero puedes entender exactamente a qué me refiero.

NOTA: Para Python 3, necesitará usar input en lugar de raw_input

He tenido una pregunta similar y estaba usando señal:

 import signal def signal_handler(signal_number, frame): print "Proceed ..." signal.signal(signal.SIGINT, signal_handler) signal.pause() 

Así que registra un manejador para la señal SIGINT y hace una pausa para esperar cualquier señal. Ahora, desde fuera de su progtwig (por ejemplo, en bash), puede ejecutar kill -2 , que enviará la señal 2 (es decir, SIGINT) a su progtwig de python. Su progtwig llamará a su controlador registrado y continuará ejecutándose.

Muy simple:

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

Uso lo siguiente para python 2 y 3 para pausar la ejecución del código hasta que el usuario presione ENTER

 import six if six.PY2: raw_input("Press the  key to continue...") else: input("Press the  key to continue...") 
 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:

Para un bloque de texto largo, es mejor usar la input('Press to continue') (o raw_input('Press to continue') en Python 2.x) para preguntar al usuario, en lugar de tiempo de retardo. Los lectores rápidos no querrán esperar por un retraso, los lectores lentos podrían querer más tiempo en la demora, alguien podría ser interrumpido mientras lo lee y querría mucho más tiempo, etc. Además, si alguien usa mucho el progtwig, ella puede acostumbrarse a cómo funciona y no necesitar siquiera leer el texto largo. Es más fácil permitir que el usuario controle cuánto tiempo se muestra el bloque de texto para leer.

Creo que la mejor manera de detener la ejecución es la función time.sleep (). Si necesita suspender la ejecución solo en ciertos casos, simplemente puede implementar una instrucción if como esta:

 if somethinghappen: time.sleep(seconds) 

Puedes dejar la twig else vacía.

Creo que me gusta esta solución.

 import getpass getpass.getpass("Press Enter to Continue") 

Oculta lo que el usuario escriba, 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.

Muestra una llave, como dije.


Probablemente, la mejor solución sería hacer algo similar al módulo getpass usted mismo, sin hacer una llamada de read -s . Tal vez haciendo que el color fg coincida con el bg?