Pregunta

  

Posible duplicado:
   Cómo finalizar un script de Python

Tengo una secuencia de comandos de Python simple que quiero dejar de ejecutar si se cumple una condición.

Por ejemplo:

done = True
if done:
    # quit/stop/exit
else:
    # do other stuff

Básicamente, estoy buscando algo que se comporte de manera equivalente a la palabra clave 'return' en el cuerpo de una función que permite que el flujo del código salga de la función y no ejecute el código restante.

¿Fue útil?

Solución

Para salir de un script que puedes usar,

import sys
sys.exit()

También puede proporcionar un valor de estado de salida, generalmente un entero.

import sys
sys.exit(0)

Sale con cero, lo que generalmente se interpreta como éxito. Los códigos que no son cero generalmente se tratan como errores. El valor predeterminado es salir con cero.

import sys
sys.exit("aa! errors!")

Imprime " aa! errores! " y sale con un código de estado de 1.

También hay una función _exit () en el módulo os. La función sys.exit () genera una excepción de SystemExit para salir del programa, por lo que puede ejecutar sentencias y código de limpieza. La versión os._exit () no hace esto. Simplemente finaliza el programa sin realizar ningún tipo de limpieza o lavado de búferes de salida, por lo que normalmente no debe utilizarse.

Los documentos de Python indican que os._exit () es la forma normal de finalizar un proceso secundario creado con una llamada a os.fork (), por lo que tiene un uso en ciertas circunstancias.

Otros consejos

import sys
sys.exit()

Podría poner el cuerpo de su script en una función y luego podría regresar de esa función.

def main():
  done = True
  if done:
    return
    # quit/stop/exit
  else:
    # do other stuff

if __name__ == "__main__":
  #Run as main program
  main()

Puedes usar:

import sys
sys.exit(...)

o:

raise SystemExit(...)

El parámetro opcional puede ser un código de salida o un mensaje de error. Ambos métodos son idénticos. Solía ??preferir sys.exit, pero últimamente he cambiado a aumentar SystemExit, porque parece sobresalir mejor entre el resto del código (debido a la palabra clave raise ).

exit () debería hacer el truco

exit () debería hacerlo.

Probar

sys.exit("message")

Es como el perl

die("message")

si esto es lo que buscas. Termina la ejecución del script incluso cuando se llama desde un módulo / def / function importado

Si todo el programa debe dejar de usar sys.exit (), de lo contrario, solo usa una declaración vacía.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top