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谢谢,我已经在答案中添加了:)