Beenden eines Python-Skripts

Ich kenne den Befehl die() in PHP, der ein Skript vorzeitig beendet.

Wie kann ich das in Python erreichen?

Lösung
import sys
sys.exit()

Details aus der sys Modul Dokumentation:

sys.exit([arg])

Beenden von Python. Dies wird durch das Auslösen des SystemExit-Ausnahme ausgelöst, so dass Aufräumaktionen, die durch finally-Klauseln von try-Anweisungen angegebene Aufräumaktionen beachtet werden, und es ist möglich, den Exit-Versuch auf einer äußeren Ebene abzufangen.

Das optionale Argument arg kann eine ganze Zahl sein, die den Exit-Status (Standardwert ist Null) oder ein anderer Objekttyp sein. Wenn es eine ganze Zahl ist, Null wird als "erfolgreicher Abbruch" betrachtet und jeder Wert ungleich Null wird wird von Shells und dergleichen als "abnormaler Abbruch" betrachtet. Die meisten Systeme verlangen, dass der Wert im Bereich 0-127 liegt, und erzeugen undefinierte Ergebnisse andernfalls. Einige Systeme haben eine Konvention für die Zuweisung spezifischer Bedeutung zuzuweisen, aber diese sind im Allgemeinen unterentwickelt; Unix-Programme verwenden in der Regel 2 für Befehlszeilen-Syntax Fehler und 1 für alle anderen Arten von Fehlern. Wenn eine andere Art von Objekt übergeben wird, ist None gleichbedeutend mit der Übergabe von Null, und jedes andere Objekt wird auf stderr ausgegeben und führt zu einem Exit-Code von 1. Insbesondere, sys.exit("some error message") ist ein schneller Weg, ein Programm zu beenden, wenn ein Fehler auftritt.

Da exit() letztlich "nur" eine Ausnahme auslöst, wird es nur Prozess verlassen, wenn sie vom Haupt-Thread aus aufgerufen wird und die Ausnahme nicht abgefangen.

Beachten Sie, dass dies die "nette" Art ist, den Prozess zu beenden. @glyphtwistedmatrix unten weist darauf hin, dass man os._exit(errorcode) verwenden kann, wenn man einen "harten Exit" will, obwohl das wahrscheinlich bis zu einem gewissen Grad os-spezifisch ist (unter Windows kann es z.B. keinen Fehlercode annehmen), und es ist definitiv weniger freundlich, da es den Interpreter keine Aufräumarbeiten durchführen lässt, bevor der Prozess stirbt.

Kommentare (7)

Eine andere Möglichkeit ist:

raise SystemExit
Kommentare (2)
from sys import exit
exit()

Als Parameter können Sie einen Exit-Code übergeben, der an das Betriebssystem zurückgegeben wird. Standard ist 0.

Kommentare (2)