无需尝试即可在Python中捕获键盘中断 [英] Capture keyboardinterrupt in Python without try-except

查看:281
本文介绍了无需尝试即可在Python中捕获键盘中断的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Python中是否有某种方法可以捕获KeyboardInterrupt事件而不将所有代码放入try-except语句中?

Is there some way in Python to capture KeyboardInterrupt event without putting all the code inside a try-except statement?

如果用户按下 Ctrl + C ,我想干净地退出而没有任何痕迹.

I want to cleanly exit without trace if user presses Ctrl+C.

推荐答案

是的,您可以使用模块信号,并使用 threading.Event :

Yes, you can install an interrupt handler using the module signal, and wait forever using a threading.Event:

import signal
import sys
import time
import threading

def signal_handler(signal, frame):
    print('You pressed Ctrl+C!')
    sys.exit(0)

signal.signal(signal.SIGINT, signal_handler)
print('Press Ctrl+C')
forever = threading.Event()
forever.wait()

这篇关于无需尝试即可在Python中捕获键盘中断的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆