我有一些 python 代码可以尝试让 raw_input 捕获键盘中断。如果我在这个函数中运行代码,它工作得很好。但是如果我在我的程序中运行它,打印语句永远不会发出,表明键盘中断没有被捕获。该程序尝试退出并失败,直到升级到 SIGKILL,这当然可以正常工作。我的猜测是在其他地方捕获了键盘中断,从而完全阻止了异常运行。我的问题是,这样的中断可能发生在哪里,我怎样才能防止它阻塞这个中断。我的计划是在程序捕获键盘中断和杀死自己之间添加一点延迟,以便在这里给异常一个时间来捕获。
任何想法表示赞赏
谢谢!
import sys
def interruptable_input(text=''):
'''Takes raw input, but accepts keyboard interrupt'''
try:
return raw_input(text)
except KeyboardInterrupt:
print "Interrupted by user"
sys.exit()