Python 如何在终止时执行代码

Python 如何在终止时执行代码,python,exception-handling,try-catch,finally,Python,Exception Handling,Try Catch,Finally,我希望我的代码的一部分只在我手动停止程序时执行(如按下pycharm中的停止按钮)。我想我终于可以做到了。像这样: try: do_sth() finally: print("you stopped the program") 但它不起作用。我最后两次都试了,但都没有成功。我想当我们停止程序运行时,出现了一个keyboard\u intrupt错误,所以最后肯定能正常工作 有什么想法吗 您可以使用atexit库 从: atexit模块定义用于注册和取消注册清理函数的函数。这样注册的

我希望我的代码的一部分只在我手动停止程序时执行(如按下
pycharm
中的停止按钮)。我想我终于可以做到了。像这样:

try:
   do_sth()
finally:
   print("you stopped the program")
但它不起作用。我最后两次都试了,但都没有成功。我想当我们停止程序运行时,出现了一个
keyboard\u intrupt
错误,所以最后肯定能正常工作


有什么想法吗

您可以使用
atexit

从:

atexit模块定义用于注册和取消注册清理函数的函数。这样注册的函数在解释器正常终止时自动执行

这可以这样实现:

#Rest of program...

def before_termination():
    #Do something...

import atexit    
atexit.register(before_termination)

但是,这只在正常程序终止时调用,而不是在键盘中断时调用。

当我使用它时,我不需要在代码中的某个地方调用该函数?非常感谢much@aref可能应该提到,
atexit
仅在正常程序终止期间调用,当你在pycharm中键盘中断/停止时就不会了。@dheiberg谢谢,我已经在答案中添加了:)