Как отключить прерывание с помощью Ctrl+C в cmd/pythonPython

Программы на Python
Ответить
Anonymous
 Как отключить прерывание с помощью Ctrl+C в cmd/python

Сообщение Anonymous »

У меня есть программа, имеющая довольно много функций, каждая из которых выполняется в отдельном потоке.
Когда пользователь нажимает 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)
Это помогло почти во всех случаях, кроме одного: поток, имеющий бесконечный цикл с функцией input(), все равно прерывается.
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()
UPD 3
Скриншот исключения.


Подробнее здесь: https://stackoverflow.com/questions/711 ... cmd-python
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»