我搜索这个主题几个小时无济于事。
是否可以采取以下措施:
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语句。
答案 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!")