Domanda

  

Possibile duplicato:
   Terminare uno script Python

Ho un semplice script Python che voglio interrompere l'esecuzione se viene soddisfatta una condizione.

Ad esempio:

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

In sostanza, sto cercando qualcosa che si comporti in modo equivalente alla parola chiave "return" nel corpo di una funzione che consente al flusso del codice di uscire dalla funzione e di non eseguire il codice rimanente.

È stato utile?

Soluzione

Per uscire da uno script puoi usare,

import sys
sys.exit()

Puoi anche fornire un valore dello stato di uscita, generalmente un numero intero.

import sys
sys.exit(0)

Esce con zero, che viene generalmente interpretato come successo. I codici diversi da zero vengono generalmente trattati come errori. L'impostazione predefinita è uscire con zero.

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

Stampa " aa! ! Errori " ed esce con un codice di stato di 1.

Esiste anche una funzione _exit () nel modulo os. La funzione sys.exit () solleva un'eccezione SystemExit per uscire dal programma, quindi provare a eseguire istruzioni e codice di pulizia. La versione os._exit () non lo fa. Termina semplicemente il programma senza eseguire la pulizia o lo svuotamento dei buffer di output, quindi normalmente non dovrebbe essere utilizzato.

I Documenti Python indicano che os._exit () è il modo normale di terminare un processo figlio creato con una chiamata a os.fork (), quindi può essere utile in determinate circostanze.

Altri suggerimenti

import sys
sys.exit()

Potresti mettere il corpo del tuo script in una funzione e poi puoi tornare da quella funzione.

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

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

Puoi usare:

import sys
sys.exit(...)

o

raise SystemExit(...)

Il parametro opzionale può essere un codice di uscita o un messaggio di errore. Entrambi i metodi sono identici. Preferivo sys.exit, ma ultimamente sono passato a rilanciare SystemExit, perché sembra risaltare meglio tra il resto del codice (grazie alla parola chiave raise ).

exit () dovrebbe fare il trucco

exit () dovrebbe farlo.

Prova

sys.exit("message")

È come il perl

die("message")

se questo è quello che stai cercando. Termina l'esecuzione dello script anche se viene chiamato da un modulo / def / function importato

Se l'intero programma dovesse smettere di usare sys.exit (), altrimenti usa semplicemente un ritorno vuoto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top