Frage

Mögliches Duplikat:
Beenden Sie ein Python -Skript

Ich habe ein einfaches Python -Skript, das ich aufhören möchte, auszuführen, wenn ein Zustand erfüllt ist.

Zum Beispiel:

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

Im Wesentlichen suche ich nach etwas, das sich gleichig mit dem Schlüsselwort "Rückgabe" im Körper einer Funktion verhält, mit der der Fluss des Codes die Funktion beenden und den verbleibenden Code nicht ausführen kann.

War es hilfreich?

Lösung

Um ein Skript zu beenden, das Sie verwenden können,

import sys
sys.exit()

Sie können auch einen Exit -Statuswert angeben, normalerweise eine Ganzzahl.

import sys
sys.exit(0)

Ausgänge mit Null, was allgemein als Erfolg interpretiert wird. Nicht-Null-Codes werden normalerweise als Fehler behandelt. Der Standardwert ist mit Null beendet.

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

Drucke "aa! Fehler!" und beendet mit einem Statuscode von 1.

Es gibt auch eine _exit () -Funktion im Betriebssystemmodul. Das sys.exit () Die Funktion erhöht eine Systemexit -Ausnahme, um das Programm zu beenden. Probieren Sie also Anweisungen aus und der Reinigungscode kann ausgeführt werden. Die Version os._exit () tut dies nicht. Es beendet das Programm nur, ohne dass Ausgangspuffer aufräumen oder spülen, sodass es normalerweise nicht verwendet werden sollte.

Das Python Docs Geben Sie an, dass os._exit () der normale Weg ist, um einen unteren Aufruf an os.fork () zu beenden, sodass es unter bestimmten Umständen verwendet wird.

Andere Tipps

import sys
sys.exit()

Sie könnten den Körper Ihres Skripts in eine Funktion einfügen und dann von dieser Funktion zurückkehren.

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

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

Sie können entweder verwenden:

import sys
sys.exit(...)

oder:

raise SystemExit(...)

Der optionale Parameter kann ein Exit -Code oder eine Fehlermeldung sein. Beide Methoden sind identisch. Früher habe ich Sys.exit bevorzugt, aber in letzter Zeit habe ich mich auf die Erhöhung von SystemExit umgestellt, weil es sich im Rest des Codes besser abhebt (aufgrund des Code heben Stichwort).

exit () sollte den Trick machen

exit () sollte es tun.

Versuchen

sys.exit("message")

Es ist wie der Perl

die("message")

Wenn Sie danach suchen. Es beendet die Ausführung des Skripts, selbst wenn es aus einem importierten Modul / Def / Funktion aufgerufen wird

Wenn das gesamte Programm aufhören sollte, sys.exit () zu verwenden, verwenden Sie sonst eine leere Rückgabe.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top