program finish code app python function exit

python - finish - Hacer algo antes de la salida del programa



python terminate app (3)

¿Cómo puede tener una función o algo que se ejecutará antes de que se cierre su programa? Tengo un script que se ejecutará constantemente en segundo plano, y lo necesito para guardar algunos datos en un archivo antes de que se cierre. ¿Hay una forma estándar de hacer esto?


Si desea que algo se ejecute siempre, incluso en los errores, use try: finally: like this -

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

Si también desea manejar excepciones, puede insertar una excepción: before the finally:


Si detiene la secuencia de comandos mediante la elevación de una interrupción del KeyboardInterrupt (por ejemplo, presionando Ctrl-C), puede captar eso solo como una excepción estándar. También puede capturar SystemExit de la misma manera.

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

Menciono esto solo para que lo sepas; la forma "correcta" de hacerlo es el módulo atexit mencionado anteriormente.


Mira el módulo atexit :

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

Por ejemplo, si quería imprimir un mensaje cuando mi aplicación estaba terminando:

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

Solo tenga en cuenta que esto funciona muy bien para la finalización normal del script, pero no se llamará en todos los casos (por ejemplo, errores internos fatales).