python 捕捉ctrl+c

寒依 发布于 2016/08/21 18:01
阅读 3K+
收藏 0
用python写了个脚本处理几百万行的文本文件,处理一行就可以删除这行了。但是由于文件太长,我需要终止它。终止时,要把处理的行都删除就行了。python有没有想shell中的trap那样,按下ctrl+c 就完成指定的命令。
加载中
1
502BadGateway
502BadGateway

请参考python官方文档中signal部分

示例如下:

PS: 示例中,想要实现按下Ctrl+C执行一段逻辑,可以在自定义函数handler中加入处理逻辑即可。

import signal
import sys
import time

def handler(signal_num,frame):
    print "\nYou Pressed Ctrl-C."
    sys.exit(signal_num)
signal.signal(signal.SIGINT, handler)


# 正常情况可以开始你自己的程序了。
# 这里为了演示,我们做一个不会卡死机器的循环。
while 1:
    time.sleep(10)
# 当你按下Ctrl-C的时候,应该会输出一段话,并退出.


至于single详细用法,以及自定义的函数handler参数各代表啥意思还是参考官方文档为好~ 
寒依
谢谢,问题解决了。
0
黑暗圣堂武士
黑暗圣堂武士

可能可以通过捕捉KeyboardInterrupt这个错误,进行处理。

搜索except

寒依
我也想过用try except ,那我岂不是要把整个脚本代码都报过起来了?或者别的简洁的方法?
返回顶部
顶部