我出于教育目的试图运行WifiPhisher。一步说它按Ctrl-C输入一个数字。现在,当我按下Ctrl-c时,脚本将按我在this issue on github中描述的那样退出。理想情况下,脚本不应该退出而应该在按下Ctrl-C后继续逻辑。我不熟悉Python,任何人都可以帮我解决这个问题吗?
答案 0 :(得分:8)
您可以设置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 (在较旧的Unix中,DEL)发送INT信号(SIGINT);默认情况下,这会导致进程终止
SIGINT 当用户希望中断该过程时,SIGINT信号由其控制终端发送到进程。这通常是通过按Control-C启动的,但在某些系统上,可以使用“删除”字符或“中断”键。[6]
答案 1 :(得分:5)
您需要捕获KeyboardInterrupt并处理它。
真正基本的例子:
try:
while True:
print "Hello world"
except KeyboardInterrupt:
print "Goodbye"
exit(0)
答案 2 :(得分:0)
将此用于重复性任务。但是在 Linux 中,当按下 Ctrl-C 时它会显示“^C”。 (在 Windows Store 应用 Ubuntu 上测试,应该可以在很多平台上工作)
def repeat():
try:
import time
x=0
while x==0:
print("This is text")
time.sleep(0.1)
except KeyboardInterrupt:
repeat()
repeat()