Когда пользователь нажимает Ctrl+C, происходит сбой только 1 потока с исключением, но из-за этого вся программа может работать некорректно.
Конечно, я могу написать такую конструкцию в каждой функции:
Код: Выделить всё
try:
do_something()
except KeyboardInterrupt as e:
pass
Или есть можно ли отключить прерывание Ctrl+C в настройках cmd?
Например, в реестре. Программа создает собственный ключ реестра в HKEY_CURRENT_USER\Console\MyProgrammKey
UPD 1
Код: Выделить всё
signal.signal(signal.SIGINT, signal.SIG_IGN)
UPD 2
Вот пример кода
Код: Выделить всё
import signal, time
from threading import Thread
def one():
while True:
inp = input("INPUT: ")
def two():
while True:
print("I just printing...")
time.sleep(1)
if __name__ == '__main__':
signal.signal(signal.SIGINT, signal.SIG_IGN)
Thread(target=one).start()
Thread(target=two).start()
Скриншот исключения.
Подробнее здесь: https://stackoverflow.com/questions/711 ... cmd-python
Мобильная версия