博主辛苦了,我要打赏银两给博主,犒劳犒劳站长。
【摘要】日常编写调试运行程序过程中,难免需要手动终止程序,或者出于不小心操作导致程序终止,往往会导致一些有关数据库操作的代码引起数据丢失等情况,所以本人就在网上四处搜索相关的方法,能够在脚本意外中断时触发执行相关代码,记录有关数据,以下是总结出来的两种方法。
二话不多说,直接上例子。
1、使用 python 的异常 KeyboardInterrupt
# 本代码复制后可以直接执行
n = 1
try:
while n:
n += 1
except KeyboardInterrupt:
print('hello , ni 触发了 ctrl + c!n = ',n)
这种方法并不推荐,因为使用起来不方便,推荐使用第二种方法。
2、使用 signal 模块
1)使用 ctrl + c 不会中断程序
# 以下代码复制后可以直接执行
# 以下代码使用 ctrl + c 时不会中断程序
import time
import signal
def signal_handler(signal,frame):
print('You pressed Ctrl+C!')
signal.signal(signal.SIGINT,signal_handler)
print('Press Ctrl+C')
for x in range(1,30):
time.sleep(1)
print(x)
2)使用 ctrl + c 优雅的中断程序
import time
import signal
import sys
def signal_handler(signal,frame):
print('You pressed Ctrl + C!')
print(x)
sys.exit(0)
signal.signal(signal.SIGINT,signal_handler)
print('Press Ctrl + C')
for x in range(1,20):
time.sleep(1)
print(x)
以上 2)中方法就可以实现在退出程序时,获取当前脚本的变量,然后进行相关的处理。
版权归 马富天个人博客 所有
本文标题:《使用 ctrl c 中断 python 程序时如何做到优雅的退出》
本文链接地址:http://www.mafutian.com/453.html
转载请务必注明出处,小生将不胜感激,谢谢! 喜欢本文或觉得本文对您有帮助,请分享给您的朋友 ^_^
顶2
踩2
评论审核未开启 |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
||