Как предотвратить завершение работающей программы с помощью "Ctrl + C" в Linux с помощью Python? - PullRequest
4 голосов
/ 16 мая 2011

Я написал фрагмент кода на python, в котором я задаю вопросы, и пользователи должны высказать свое мнение. Иногда пользователю сложно понять эти вопросы (они не на английском языке). Поэтому большую часть времени они хотят скопировать вставить предложение в гугл-переводчик. Однако, поскольку этот код выполняется в командной строке, они должны выбрать текст и, используя «правый клик -> копировать», могут скопировать текст в Google Translate. Иногда по ошибке нажимают «ctrl + c» (для всех естественно использовать эту комбинацию для копирования). Выполнение этого приведет к завершению кода, и они должны начать все сначала. Мне нужно знать, что я могу предотвратить это. Другими словами, если они нажимают "Ctrl + C", ничего не происходит, и мое программное обеспечение не прерывается. спасибо

Ответы [ 3 ]

2 голосов
/ 16 мая 2011

Когда вы нажимаете Ctrl + C, он отправляет SIGINT запущенному процессу.Вы можете поймать его, как описано здесь .

Вы можете узнать больше о различных типах сигналов здесь .

1 голос
/ 16 мая 2011
import signal
def SigIntHand(SIG, FRM):
    print("Please Right click-copy. Ctrl-C does not work on the cmd prompt")

signal.signal(signal.SIGINT, SigIntHand)

или, если хотите, полностью игнорируется:

import signal
signal.signal(signal.SIGINT, signal.SIG_IGN)
0 голосов
/ 16 мая 2011

Если используется X, текст обычно копируется в буфер обмена после его выделения. Просто вставьте его, используя среднюю кнопку мыши или Shift + insert.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...