在Ctrl-C上删除Python中的回溯

时间:2011-08-16 03:16:40

标签: python traceback keyboardinterrupt

当你点击 Ctrl + c 时,是否有办法防止追溯出现,  即在Python脚本中引发KeyboardInterrupt

7 个答案:

答案 0 :(得分:31)

试试这个:

import signal
signal.signal(signal.SIGINT, lambda x,y: sys.exit(0))

这样您就不需要将所有内容都包装在异常处理程序中。

答案 1 :(得分:24)

import sys
try:
    # your code
except KeyboardInterrupt:
    sys.exit(0) # or 1, or whatever

这是最简单的方法,假设您在获得 Ctrl + c 时仍想退出。

如果您想在没有尝试/除外的情况下捕获它,可以使用recipe like this使用signal module,除非它在Windows上似乎不适合我。

答案 2 :(得分:6)

抓住KeyboardInterrupt

try:
    # do something
except KeyboardInterrupt:
    pass

答案 3 :(得分:2)

try:
    your_stuff()
except KeyboardInterrupt:
    print("no traceback")

答案 4 :(得分:1)

使用try / except块抓住它:

while True:
   try:
      print "This will go on forever"
   except KeyboardInterrupt:
      pass

答案 5 :(得分:0)

另请注意,默认情况下,解释器将退出状态代码128 +平台上SIGINT的值(在大多数系统上为2)。

    import sys, signal

    try:
        # code...
    except KeyboardInterrupt: # Suppress tracebacks on SIGINT
        sys.exit(128 + signal.SIGINT) # http://tldp.org/LDP/abs/html/exitcodes.html

答案 6 :(得分:-4)

import sys
try:
    print("HELLO")
    english = input("Enter your main launguage: ")
    print("GOODBYE")
except KeyboardInterrupt:
    print("GET LOST")