Wie können Sie eine Funktion oder etwas haben, das ausgeführt wird, bevor Ihr Programm beendet wird? Ich habe ein Skript, das ständig im Hintergrund ausgeführt wird, und ich benötige es, um einige Daten in einer Datei zu speichern, bevor es beendet wird. Gibt es eine Standardmethode dafür?
100
Antworten:
Überprüfen Sie das
atexit
Modul:http://docs.python.org/library/atexit.html
Wenn ich beispielsweise eine Nachricht drucken wollte, als meine Anwendung beendet wurde:
Beachten Sie jedoch, dass dies für die normale Beendigung des Skripts hervorragend funktioniert, jedoch nicht in allen Fällen aufgerufen wird (z. B. schwerwiegende interne Fehler).
quelle
Note The exit function is not called when the program is killed by a signal, when a Python fatal internal error is detected, or when os._exit() is called
.Wenn Sie möchten, dass auch bei Fehlern immer etwas ausgeführt wird, verwenden Sie
try: finally:
Folgendes:Wenn Sie auch Ausnahmen behandeln möchten, können Sie eine
except:
vor dem einfügenfinally:
quelle
Wenn Sie das Skript stoppen, indem Sie a auslösen
KeyboardInterrupt
(z. B. durch Drücken von Strg-C), können Sie dies nur als Standardausnahme abfangen. Sie können auchSystemExit
auf die gleiche Weise fangen .Ich erwähne dies nur, damit Sie davon erfahren. Der "richtige" Weg, dies zu tun, ist das
atexit
oben erwähnte Modul.quelle