当你点击 Ctrl + c 时,是否有办法防止追溯出现,
即在Python脚本中引发KeyboardInterrupt
?
答案 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)
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")