Como você pode ter uma função ou algo que será executado antes de seu programa encerrar? Eu tenho um script que será executado constantemente em segundo plano e preciso salvar alguns dados em um arquivo antes de sair. Existe uma maneira padrão de fazer isso?
100
Respostas:
Confira o
atexit
módulo:http://docs.python.org/library/atexit.html
Por exemplo, se eu quisesse imprimir uma mensagem quando meu aplicativo estava sendo encerrado:
Esteja ciente de que isso funciona muito bem para o encerramento normal do script, mas não será chamado em todos os casos (por exemplo, erros internos fatais).
fonte
Note The exit function is not called when the program is killed by a signal, when a Python fatal internal error is detected, or when os._exit() is called
.Se você quer que algo sempre rode, mesmo com erros, use
try: finally:
assim -Se você também quiser lidar com exceções, pode inserir um
except:
antes definally:
fonte
Se você parar o script levantando um
KeyboardInterrupt
(por exemplo, pressionando Ctrl-C), você pode pegar isso apenas como uma exceção padrão. Você também pode pegarSystemExit
da mesma maneira.Menciono isso apenas para que você saiba; a maneira 'certa' de fazer isso é o
atexit
módulo mencionado acima.fonte