2016-05-12 6 views
2

atexitモジュールに登録された関数に終了コードを設定して終了時に呼び出される方法はありますか? sys.exit(code)を呼び出すとエラーが発生し、終了コードを目的の値に設定しません。atexitコールバックで終了コードを設定する

d:\>python atexit_test.py 
Error in atexit._run_exitfuncs: 
Traceback (most recent call last): 
    File "atexit_test.py", line 3, in myexit 
    sys.exit(2) 
SystemExit: 2 

d:\>echo %ERRORLEVEL% 
0 

atexit_test.pyの内容:

def myexit(): 
    import sys 
    sys.exit(2) 

import atexit 
atexit.register(myexit) 
+1

どのようなPythonのバージョンが使われていますか?私はPython 3.5.1でそれを再現することができますが、Python 2.7.10では正常に動作します( 'sys.exit'と' SystemExit'の両方)。正しいタグ(python-2.xまたはpython-3.x)を使用できますか? –

+0

@Rogalski私はPython 3.5.1を使用しています。 – Melebius

答えて

0

@Rogalskiによって報告されているように私は、Pythonの2.7.35(私の場合は2.7.6)でテストコードの動作を証明することができます。だから私はこれをPython 3.xのバグとみなし、バグレポートを提出しました:http://bugs.python.org/issue27035

関連する問題