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
みたいな、大域脱出の後処理もできる。
大きなシステムには出番がないだろうけど、"小さなスクリプト"とは言えない程度に大きめなプログラムで使えそう。
