Exit-code als python-Skript hat nicht behandelte Ausnahme
Ich brauche eine Methode zum ausführen eines python-Skript-Datei, und wenn das Skript nicht mit eine nicht behandelte Ausnahme python-Ausgang mit einem nicht-null exit-code. Mein Erster Versuch war so etwas wie dieses:
import sys
if __name__ == '__main__':
try:
import <unknown script>
except:
sys.exit(-1)
Aber er bricht eine Menge von Skripten, aufgrund der __main__
Wache oft verwendet. Vorschläge, wie dies zu tun, richtig?
- Möchten Sie zum ausführen von Skripts oder import-Module? Wenn Sie möchten, um Skripte auszuführen, können Sie mit der
subprocess
- Modul. - Ich bekomme eine unbekannte Schrift. Ich möchte es laufen und erhalten eine nicht-null exit-code aus, wenn er abstürzt. Unterprozess wird nicht viel helfen, weil der python-Prozess wird fröhlich, geben 0 zurück, auch wenn das Skript wirft eine unbehandelte Ausnahme.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Python bereits tut, was Sie fordern:
Nach einigen änderungen von der OP, vielleicht möchten Sie:
Korrigieren Sie mich, wenn ich verwirrt bin hier.
wenn Sie möchten, führen Sie ein Skript in einem Skript importieren Sie dann nicht den Weg, den Sie verwenden konnten, exec, wenn Sie nur die Sorge um das fangen von exceptions:
können Sie auch den code kompilieren zuerst mit
wenn Sie Planung, um führen Sie das Skript mehr als einmal und exec das Ergebnis im namespace
oder verwenden Teilprozess, wie oben beschrieben, wenn Sie brauchen, besorgen Sie sich die Ausgabe generiert, die vom Skript.