如何在Linux中使用Python防止“ctrl+c”终止正在运行的程序?

4 投票
3 回答
987 浏览
提问于 2025-04-16 17:44

我写了一段Python代码,里面会问用户一些问题,用户需要输入答案。有时候,这些问题比较难理解(因为不是英文的)。所以大多数时候,他们想把句子复制到谷歌翻译里去翻译。但是,因为这个代码是在命令提示符下运行的,他们需要选中文本,然后用“右键点击 -> 复制”才能把文本复制到谷歌翻译里。有时候,他们不小心按了“ctrl+c”(大家都习惯用这个组合键来复制)。这样一来,代码就会被终止,他们得重新开始。我想知道有没有办法防止这种情况发生。换句话说,如果他们按“ctrl+c”,什么都不发生,我的软件也不会中断。谢谢。

3 个回答

0

如果你使用的是X系统,通常在你选中一段文字后,它会自动复制到剪贴板。你可以用鼠标中键点击一下,或者按Shift+插入键来粘贴它。

2

当你按下 ctrl+c 时,它会向正在运行的程序发送一个叫做 SIGINT 的信号。你可以按照这里的说明来捕捉这个信号 here

想了解更多关于不同类型信号的信息,可以点击这里 here

2
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)

或者如果你想让它完全被忽略:

撰写回答