Bagaimana Anda bisa memiliki fungsi atau sesuatu yang akan dieksekusi sebelum program Anda berhenti? Saya memiliki skrip yang akan terus berjalan di latar belakang, dan saya membutuhkannya untuk menyimpan beberapa data ke file sebelum keluar. Apakah ada cara standar untuk melakukan ini?
100
Jawaban:
Lihat
atexit
modulnya:http://docs.python.org/library/atexit.html
Misalnya, jika saya ingin mencetak pesan ketika aplikasi saya dihentikan:
Perlu diketahui bahwa ini berfungsi dengan baik untuk penghentian normal skrip, tetapi tidak akan dipanggil di semua kasus (mis. Kesalahan internal yang fatal).
sumber
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
.Jika Anda ingin sesuatu selalu berjalan, bahkan pada kesalahan, gunakan
try: finally:
seperti ini -Jika Anda juga ingin menangani pengecualian, Anda dapat menyisipkan
except:
sebelumfinally:
sumber
Jika Anda menghentikan skrip dengan menaikkan a
KeyboardInterrupt
(misalnya dengan menekan Ctrl-C), Anda dapat menangkapnya hanya sebagai pengecualian standar. Anda juga bisa menangkapSystemExit
dengan cara yang sama.Saya menyebutkan ini hanya agar Anda mengetahuinya; cara yang 'tepat' untuk melakukannya adalah dengan
atexit
modul yang disebutkan di atas.sumber