Python脚本避免在按下CtrlC时退出

2024-09-30 16:33:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图运行WifiPhisher以达到教育目的。在一个步骤中,它说按Ctrl-C输入一个数字。现在,当我按Ctrl-c时,脚本将按我在this issue on github中描述的那样退出。在理想的情况下,应该在按下Ctrl-C之后退出,而不是继续。我对Python不熟悉,有人能帮我克服这些吗?在


Tags: 目的github脚本on情况步骤数字issue
2条回答

你需要捕捉一个键盘中断并处理它。在

最基本的例子:

try:
    while True:
        print "Hello world"
except KeyboardInterrupt:
    print "Goodbye"
    exit(0)

您可以将signal handler设置为CTRL-C信号来关闭默认的signal handler,这会引发KeyboardInterrupt异常。在

import signal, os

def handler(signum, frame):
    print 'Signal handler called with signal', signum

# Set the signal handler
signal.signal(signal.SIGINT, handler)

Ctrl-C (in older Unixes, DEL) sends an INT signal (SIGINT); by default, this causes the process to terminate

SIGINT The SIGINT signal is sent to a process by its controlling terminal when a user wishes to interrupt the process. This is typically initiated by pressing Control-C, but on some systems, the "delete" character or "break" key can be used.[6]

https://docs.python.org/2/library/signal.html

相关问题 更多 >