Pythonプログラムが終了したときにタスクを実行したいのですが、正常に終了した場合にのみ実行します。私が知る限り、atexitモジュールを使用すると、登録された関数は常にがプログラムの終了時に実行されることになります。正常終了時にのみ実行するように関数を登録する同様の機能はありますか?代わりに、私の出口機能が出口が正常か例外かを検出する手段がありますか?Pythonプログラムの*成功*終了時にのみ呼び出される関数を登録するにはどうすればよいですか?
ここに問題を示すコードがあります。プログラムが失敗した場合でも、プログラムが成功したことを表示します。
import atexit
def myexitfunc():
print "Program succeeded!"
atexit.register(myexitfunc)
raise Exception("Program failed!")
出力:箱から出して
$ python atexittest.py
Traceback (most recent call last):
File "atexittest.py", line 8, in <module>
raise Exception("Program failed!")
Exception: Program failed!
Program succeeded!
これはおそらく私が尋ねたものを得るための最も簡単な方法です。 –