¿Cómo mantener abierta una ventana de salida de script de Python?

Resuelto rohitmishra asked hace 15 años • 27 respuestas

Acabo de empezar con Python. Cuando ejecuto un archivo de script de Python en Windows, aparece la ventana de salida pero desaparece instantáneamente. Necesito que permanezca allí para poder analizar mi resultado. ¿Cómo puedo mantenerlo abierto?

rohitmishra avatar Jun 16 '09 18:06 rohitmishra
Aceptado

Tienes pocas opciones:

  1. Ejecute el programa desde una terminal ya abierta. Abra un símbolo del sistema y escriba:

    python myscript.py
    

    Para que eso funcione, necesita el ejecutable de Python en su ruta. Simplemente verifique cómo editar variables de entorno en Windows y agregue C:\PYTHON26(o cualquier directorio en el que haya instalado Python).

    Cuando finalice el programa, volverá al indicador cmd en lugar de cerrar la ventana.

  2. Agregue código para esperar al final de su secuencia de comandos. Para Python2, agregando...

    raw_input()
    

    ... al final del script se hace esperar la Enterclave. Ese método es molesto porque tienes que modificar el script y recordar eliminarlo cuando hayas terminado. Especialmente molesto al probar los scripts de otras personas. Para Python3, utilice input().

  3. Utilice un editor que se detenga por usted. Algunos editores preparados para Python se pausarán automáticamente después de la ejecución. Otros editores le permiten configurar la línea de comando que utiliza para ejecutar su programa. Me resulta particularmente útil configurarlo como " python -i myscript.py" cuando se ejecuta. Eso lo lleva a un shell de Python después del final del programa, con el entorno del programa cargado, para que pueda jugar más con las variables y llamar a funciones y métodos.

nosklo avatar Jun 16 '2009 11:06 nosklo

cmd /kes la forma típica de abrir cualquier aplicación de consola (no solo Python) con una ventana de consola que permanecerá después de que se cierre la aplicación. La forma más sencilla que se me ocurre para hacerlo es presionar Win+R, escribir cmd /ky luego arrastrar y soltar el script que desea en el cuadro de diálogo Ejecutar.

tzot avatar Jun 23 '2009 11:06 tzot

Inicie el script desde una ventana cmd ya abierta o al final del script agregue algo como esto, en Python 2:

raw_input("Press enter to exit;")

O, en Python 3:

input("Press enter to exit;")
Anurag Uniyal avatar Jun 16 '2009 11:06 Anurag Uniyal

Para mantener la ventana abierta en caso de excepción (aún, mientras se imprime la excepción)

Pitón 2

if __name__ == '__main__':
    try:
        ## your code, typically one function call
    except Exception:
        import sys
        print sys.exc_info()[0]
        import traceback
        print traceback.format_exc()
        print "Press Enter to continue ..." 
        raw_input() 

Para mantener la ventana abierta en cualquier caso:

if __name__ == '__main__':
    try:
        ## your code, typically one function call
    except Exception:
        import sys
        print sys.exc_info()[0]
        import traceback
        print traceback.format_exc()
    finally:
        print "Press Enter to continue ..." 
        raw_input()

Pitón 3

Para Python3 tendrás que usar input()en lugar deraw_input() y, por supuesto, adaptar las printdeclaraciones.

if __name__ == '__main__':
    try:
        ## your code, typically one function call
    except BaseException:
        import sys
        print(sys.exc_info()[0])
        import traceback
        print(traceback.format_exc())
        print("Press Enter to continue ...")
        input() 

Para mantener la ventana abierta en cualquier caso:

if __name__ == '__main__':
    try:
        ## your code, typically one function call
except BaseException:
    import sys
    print(sys.exc_info()[0])
    import traceback
    print(traceback.format_exc())
finally:
    print("Press Enter to continue ...")
    input()
Antonio avatar Mar 12 '2014 13:03 Antonio