python 无法使用Ctrl-C终止Python脚本(ctrl+c 退出while True)

无法使用Ctrl-C终止Python脚本

写了一个死循环,类似:

def  function():
   while True:
       #my code

程序运行后想用ctrl+c按键停止程序,可是终止不了。以下为解决办法:

第一步:加入sys,signal模块,定义一个quit函数

import sys                                                                  
import signal
 
def quit(signum, frame):
    print ''
    print 'stop fusion'
    sys.exit()

第二步:在funtion函数中加入两行代码:

def funtion():
    signal.signal(signal.SIGINT, quit)                                
    signal.signal(signal.SIGTERM, quit)
    while True:
        #my code

另外编写代码

while True一定要有break语句

如下,如果 我们注释调 异常中的 break,我们ctrl+c 就不起作用,因为键盘KeyboardInterrupt异常在while循环中捕获,代码依旧循环。

def print_hi(name):
    print("Hi, {0}".format(name))

    while True:
        try:
            print("xxx")
            time.sleep(30)
        except:
            print traceback.format_exc()
            #break
if __name__ == '__main__':
    print_hi('中国')

我们解除调break 注释,发现ctrl +c 立马退出了程序。

在python中中断/中断time.sleep()

While 1:
    time.sleep(60)

在上面的代码中,当控件进入time.sleep函数时,需要经过整整60秒才能处理CTRL C 。

如上面描述,我们用try 捕获 KeyboardInterrupt 中断,然后直接break,就可以立即处理停止程序。

def print_hi(name):
    print("Hi, {0}".format(name))

    while True:
        try:
            print("xxx")
            time.sleep(60)
        except:
            print traceback.format_exc()
            break
if __name__ == '__main__':
    print_hi('中国')
相关推荐
<p> <strong><span style="background-color:#FFFFFF;color:#E53333;font-size:24px;">本页面购买不发书!!!仅为视频课购买!!!</span></strong> </p> <p> <strong><span style="color:#E53333;font-size:18px;">请务必到</span></strong><a href="https://edu.csdn.net/bundled/detail/49?utm_source=banner"><strong><span style="color:#E53333;font-size:18px;">https://edu.csdn.net/bundled/detail/49</span></strong></a><strong><span style="color:#E53333;font-size:18px;">下单购买课+书。</span></strong> </p> <p> <span style="font-size:14px;">本页面,仅为观看视频页面,如需一并购买图书,请</span><span style="font-size:14px;">务必到</span><a href="https://edu.csdn.net/bundled/detail/49?utm_source=banner"><span style="font-size:14px;">https://edu.csdn.net/bundled/detail/49</span></a><span style="font-size:14px;">下单购买课程+图书!!!</span> </p> <p> <br /> </p> <p> <span style="font-size:14px;">疯狂Python精讲课程覆盖《疯狂Python讲义》全书的主体内容。</span> </p> <span style="font-size:14px;">内容包括Python基本数据类型、Python列表、元组和字典、流程控制、函数式编程、面向对象编程、文件读写、异常控制、数据库编程、并发编程与网络编程、数据可视化分析、Python爬虫等。</span><br /> <span style="font-size:14px;"> 全套课程从Python基础开始介绍,逐步步入当前就业热点。将会带着大家从Python基础语法开始学习,为每个知识点都提供对应的代码实操、代码练习,逐步过渡到文件IO、数据库编程、并发编程、网络编程、数据分 析和网络爬虫等内容,本课程会从小案例起,至爬虫、数据分析案例终、以Python知识体系作为内在逻辑,以Python案例作为学习方式,最终达到“知行合一”。</span><br />
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页
实付 29.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值