在python中使用键盘中断关闭程序

时间:2014-09-18 06:33:11

标签: python

我在Windows上使用Python 2.7。

如何在python中通过键盘中断关闭程序。

我制作了一些代码,但它每次都要求我提供输入然后根据它执行某些操作。 我希望代码不应该每次都询问我,在任何随机时间我给出输入它应该执行相应的操作 (对于我的案子关闭程序)

while 1:
var = raw_input("enter a to stop:  ")
     if var == 'a':
       break

exit()   

3 个答案:

答案 0 :(得分:1)

您可以将代码置于try除了block并捕获keyboardInterrupt

之外
#!/usr/bin/python
import sys
try:
     # Do something here and when you key board interrupt 
     # The except block will capture the keyboard interrupt and exit

except KeyboardInterrupt:
    sys.exit()

答案 1 :(得分:0)

如果您不想使用try-except构造,请使用signal模块来捕获SIGINT。以下代码来自this page,在这里您可以找到更长的解释:

import signal

def keyboardInterruptHandler(signal, frame):
    print("KeyboardInterrupt (ID: {}) has been caught. Cleaning up...".format(signal))
    exit(0)

signal.signal(signal.SIGINT, keyboardInterruptHandler)

while True:
    pass

Ỳou还可以查看this question

的答案

答案 2 :(得分:-1)

试试这个。

try:
   while 1:
    var = raw_input("enter a to stop:  ")
    if var == 'a':
       break
except (KeyboardInterrupt, SystemExit):
    print 'program stopped manually'
    raise
except:
    # report error and proceed,