필자의 파이썬 프로그램이 끝났을 때, 성공적으로 끝난 경우에만 작업을 실행하고 싶습니다. 내가 아는 한, atexit 모듈을 사용하면 등록한 함수가 항상이 성공에 관계없이 프로그램 종료시 실행된다는 것을 의미합니다. 성공적인 종료시에만 실행되도록 함수를 등록하는 비슷한 기능이 있습니까? 또는 출구 기능이 정상인지 아니면 예외인지를 감지 할 수있는 방법이 있습니까?Python 프로그램의 * successful * exit에서만 호출 할 수있는 함수를 어떻게 등록 할 수 있습니까?
다음은 문제를 나타내는 코드입니다. 프로그램이 실패한 경우에도 프로그램이 성공했음을 인쇄합니다.
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!
이것은 아마도 내가 묻는 것을 얻는 가장 간단한 방법 일 것입니다. –