¿Cómo termino un script?
¿Cómo salgo de un script antes de tiempo, como el die()
comando en PHP?
import sys
sys.exit()
detalles de la sys
documentación del módulo :
sys.exit([arg])
Salir de Python. Esto se implementa generando la
SystemExit
excepción, por lo que se respetan las acciones de limpieza especificadas por las cláusulas finalmente detry
las declaraciones y es posible interceptar el intento de salida en un nivel externo.El argumento opcional arg puede ser un número entero que proporcione el estado de salida (el valor predeterminado es cero) u otro tipo de objeto. Si es un número entero, cero se considera "terminación exitosa" y cualquier valor distinto de cero se considera "terminación anormal" por parte de shells y similares. La mayoría de los sistemas requieren que esté en el rango 0-127 y, de lo contrario, producen resultados indefinidos. Algunos sistemas tienen una convención para asignar significados específicos a códigos de salida específicos, pero generalmente están poco desarrolladas; Los programas Unix generalmente usan 2 para errores de sintaxis de línea de comando y 1 para todos los demás tipos de errores. Si se pasa otro tipo de objeto, Ninguno equivale a pasar cero, y cualquier otro objeto se imprime
stderr
y da como resultado un código de salida de 1. En particular,sys.exit("some error message")
es una forma rápida de salir de un programa cuando ocurre un error.Dado que,
exit()
en última instancia, "sólo" genera una excepción, solo saldrá del proceso cuando se llame desde el hilo principal y la excepción no será interceptada.
Tenga en cuenta que esta es la forma "bonita" de salir. @gliptwistedmatrix a continuación señala que si desea una 'salida completa', puede usar , aunque es probable que sea específico del sistema operativo hasta cierto punto (puede que no admita un código de error enos._exit(*errorcode*)
Windows, por ejemplo), y definitivamente es menos amigable ya que no permite que el intérprete realice ninguna limpieza antes de que finalice el proceso. Por otro lado, mata todo el proceso, incluidos todos los subprocesos en ejecución, mientras que sys.exit()
(como dice en los documentos) solo sale si se llama desde el subproceso principal, sin ningún otro subproceso en ejecución.
Una forma sencilla de finalizar un script de Python antes de tiempo es utilizar la función incorporada quit()
. No es necesario importar ninguna biblioteca y es eficiente y sencillo.
Ejemplo:
#do stuff
if this == that:
quit()