Wie bringe ich die Ausführung eines Python -Skripts ab? [Duplikat
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.
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.