2013-01-10 [長年日記]
■sys.exit()は"即座に終了する"関数ではない
SystemExitという例外を送出する関数。
sys.exit()に渡した引数をcodeで取れるので
try: with closing(codecs.open('executing', 'a', 'utf-8')) as f: #f.write()とかなんとか if 正常終了: sys.exit(0) else: sys.exit(1) except SystemExit, e: if e.code==0: os.rename('executing', 'executed') else: os.remove('executing') raise
みたいな、大域脱出の後処理もできる。
大きなシステムには出番がないだろうけど、"小さなスクリプト"とは言えない程度に大きめなプログラムで使えそう。