복붙노트

[PYTHON] 프로그램 종료 전에 무엇인가하기

PYTHON

프로그램 종료 전에 무엇인가하기

프로그램이 종료되기 전에 어떻게 실행될 기능이나 무언가를 가질 수 있습니까? 백그라운드에서 지속적으로 실행될 스크립트가 있으며 종료하기 전에 파일에 일부 데이터를 저장해야합니다. 이 작업을 수행하는 표준 방법이 있습니까?

해결법

  1. ==============================

    1.atexit 모듈을 확인하십시오.

    atexit 모듈을 확인하십시오.

    http://docs.python.org/library/atexit.html

    예를 들어, 응용 프로그램이 종료 될 때 메시지를 인쇄하려면 다음과 같이하십시오.

    import atexit
    
    def exit_handler():
        print 'My application is ending!'
    
    atexit.register(exit_handler)
    

    이 스크립트는 정상적으로 스크립트가 종료 될 때 유용하지만 모든 경우에 호출되지는 않습니다 (예 : 치명적인 내부 오류).

  2. ==============================

    2.오류가 있어도 항상 실행되도록하려면 try : finally : like this -

    오류가 있어도 항상 실행되도록하려면 try : finally : like this -

    def main():
        try:
            execute_app()
        finally:
            handle_cleanup()
    
    if __name__=='__main__':
        main()
    

    예외를 처리하려는 경우 except를 삽입 할 수도 있습니다. finally :

  3. ==============================

    3.KeyboardInterrupt를 높이 (Ctrl-C 키를 눌러) 스크립트를 중지하면 표준 예외처럼이를 잡을 수 있습니다. 동일한 방법으로 SystemExit을 잡을 수도 있습니다.

    KeyboardInterrupt를 높이 (Ctrl-C 키를 눌러) 스크립트를 중지하면 표준 예외처럼이를 잡을 수 있습니다. 동일한 방법으로 SystemExit을 잡을 수도 있습니다.

    try:
        ...
    except KeyboardInterrupt:
        # clean up
        raise
    

    당신이 그것에 대해 알 수 있도록 이것을 언급합니다; 이렇게하기위한 '올바른'방법은 위에서 언급 한 atexit 모듈입니다.

  4. from https://stackoverflow.com/questions/3850261/doing-something-before-program-exit by cc-by-sa and MIT license