除了KeyboardInterrupt之外,“try:input()是否有解决方法:”

时间:2016-07-29 00:20:50

标签: python powershell windows-10 python-3.5 try-except

我搜索这个主题几个小时无济于事。

是否可以采取以下措施:

try:
    input_var = input('> ')
except KeyboardInterrupt:
    print("This will not work.")

但是当我尝试这个并做CTRL-C时,它什么也没做。

还有其他方法可以达到这个目的吗?

使用Windows 10,Python 3.5.2和Powershell

注意:我没有使用input_var进行打印,我正在做3个基于它的/ elif / else语句。

1 个答案:

答案 0 :(得分:2)

听起来你会对信号模块感兴趣。

This Answer演示了如何使用信号模块捕获Ctrl + C或SIGINT。

对于您的用例,以下内容将起作用:

#!/usr/local/bin/python3
import signal

def signal_handler(signal, frame):
    raise KeyboardInterrupt('SIGINT received')

signal.signal(signal.SIGINT, signal_handler)
try :
    input_var = input('> ')
except KeyboardInterrupt :
    print("CTRL+C Pressed!")