Как выполнить код после завершения

Я хочу, чтобы часть моего кода выполнялась только при ручной остановке программы (например, при нажатии кнопки остановки в pycharm). Я думал, наконец, заявление может сделать это для меня. Как это:

try:
   do_sth()
finally:
   print("you stopped the program")

но это не работает Я попробовал и то и другое, кроме как, но никто из них не работал Я думал, когда мы остановили запуск программы, keyboard_intrrupt произошла ошибка, так что, наконец, должно было сработать

Любая идея?

1 ответ

Решение

Вы могли бы использовать atexit библиотека.

Из документации:

Модуль atexit определяет функции для регистрации и отмены регистрации функций очистки. Зарегистрированные таким образом функции автоматически выполняются после обычного завершения интерпретатора.

Это может быть реализовано так:

#Rest of program...

def before_termination():
    #Do something...

import atexit    
atexit.register(before_termination)

Однако это вызывается только во время нормального завершения программы, а не в случае прерывания клавиатуры.

Другие вопросы по тегам