webentwicklung-frage-antwort-db.com.de

Wie kann ich die Ausführung eines Python Skripts abbrechen?

Mögliches Duplikat:
Beenden eines Python script

Ich habe ein einfaches Python Skript, das ich nicht mehr ausführen möchte, wenn eine Bedingung erfüllt ist.

Zum Beispiel:

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

Im Wesentlichen suche ich nach etwas, das sich äquivalent zum Schlüsselwort 'return' im Hauptteil einer Funktion verhält, wodurch der Code-Fluss die Funktion verlassen und den verbleibenden Code nicht ausführen kann.

142
Ray Vega

Um ein Skript zu beenden, können Sie Folgendes verwenden:

import sys
sys.exit()

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

import sys
sys.exit(0)

Beendet mit Null, was im Allgemeinen als Erfolg interpretiert wird. Codes ungleich Null werden normalerweise als Fehler behandelt. Standardmäßig wird mit Null beendet.

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

Druckt "aa! Fehler!" und wird mit dem Statuscode 1 beendet.

Es gibt auch eine _exit () - Funktion im os-Modul. Die Funktion sys.exit () löst eine SystemExit-Ausnahme aus, um das Programm zu beenden, sodass try-Anweisungen und Bereinigungscode ausgeführt werden können. Die Version os._exit () macht das nicht. Das Programm wird nur beendet, ohne dass die Ausgabepuffer bereinigt oder geleert werden. Daher sollte es normalerweise nicht verwendet werden.

Die Python-Dokumente geben an, dass os._exit () die normale Methode zum Beenden eines untergeordneten Prozesses ist, der mit einem Aufruf von os.fork () erstellt wurde, sodass er unter bestimmten Umständen verwendet werden kann.

242
ryan_s
import sys
sys.exit()
18
gimel

Sie könnten den Hauptteil 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 __== "__main__":
  #Run as main program
  main()
17
David Locke

Sie können entweder verwenden:

import sys
sys.exit(...)

oder:

raise SystemExit(...)

Der optionale Parameter kann ein Beendigungscode oder eine Fehlermeldung sein. Beide Methoden sind identisch. Früher habe ich sys.exit vorgezogen, aber in letzter Zeit habe ich auf das Erhöhen von SystemExit umgestellt, weil es im Rest des Codes besser hervorzuheben scheint (aufgrund des Schlüsselworts raise).

14
efotinis

exit () sollte den Trick machen

4
Sec

Versuchen

sys.exit("message")

Es ist wie mit dem Perl

die("message")

wenn es das ist, wonach du suchst. Es beendet die Ausführung des Skripts, auch wenn es von einem importierten Modul/def/function aufgerufen wird

3
GabrieleV

exit () sollte es tun.

3
Dana

Wenn das gesamte Programm aufhören soll, verwenden Sie sys.exit (), andernfalls verwenden Sie einfach einen leeren Return.

2
André