Удалить трассировку в Python на Ctrl-C
Есть ли способ предотвратить отслеживание трассировки при нажатии Ctrl + c,
т.е. поднять KeyboardInterrupt
в Python script?
Ответы
Ответ 1
import sys
try:
# your code
except KeyboardInterrupt:
sys.exit(0) # or 1, or whatever
Это самый простой способ, при условии, что вы все еще хотите выйти, когда получите Ctrl + c.
Если вы хотите перехватить его без попытки/исключения, вы можете использовать такой рецепт, используя signal
модуль, за исключением того, что он не работает для меня в Windows..
Ответ 2
Попробуй это:
import signal
import sys
signal.signal(signal.SIGINT, lambda x, y: sys.exit(0))
Таким образом, вам не нужно оборачивать все в обработчик исключений.
Ответ 3
Поймайте KeyboardInterrupt
:
try:
# do something
except KeyboardInterrupt:
pass
Ответ 4
try:
your_stuff()
except KeyboardInterrupt:
print("no traceback")
Ответ 5
Поймайте его с помощью блока try/except:
while True:
try:
print "This will go on forever"
except KeyboardInterrupt:
pass
Ответ 6
Также обратите внимание, что по умолчанию интерпретатор выходит со статусом 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
Ответ 7
import sys
try:
print("HELLO")
english = input("Enter your main launguage: ")
print("GOODBYE")
except KeyboardInterrupt:
print("GET LOST")