• 欢迎光临~

Python程序结束前处理

开发技术 开发技术 2022-10-18 次浏览

使用内置库 atexit 注册程序退出前要执行的函数.
程序崩溃和外部中断都会执行。

import atexit
import time


def f():
    print('结束')


atexit.register(f)

if __name__ == '__main__':
    for i in range(15):
        if i == 10:
            1/0
        time.sleep(1)
        print(i)

结果如下

conda activate base
(base) PC:~/Code/PyCode/test$ python test_finish.py
0
1
2
3
4
5
6
7
8
9
Traceback (most recent call last):
  File "/home/xxx/Code/PyCode/test/test_finish.py", line 14, in <module>
    1/0
ZeroDivisionError: division by zero
结束
(base) PC:~/Code/PyCode/test$ python test_finish.py
0
1
2
^CTraceback (most recent call last):
  File "/home/xxx/Code/PyCode/test/test_finish.py", line 15, in <module>
    time.sleep(1)
KeyboardInterrupt
结束
程序员灯塔
转载请注明原文链接:Python程序结束前处理
喜欢 (0)
违法和不良信息举报电话:022-22558618 举报邮箱:dljd@tidljd.com