18

当我在 python 应用程序(例如 python shell)中时,按下Ctrl\会导致

>>> Quit (core dumped)

为什么会这样,我怎样才能避免这种情况?如果我Ctrl\一不小心按下就会退出应用程序,这是非常不方便的。

4

2 回答 2

35

CTRL-\是生成 QUIT 信号的 Linux 密钥。通常,该信号会导致程序终止并转储核心。这是 UNIX 和 Linux 的一个特性,与 Python 完全无关。(例如,尝试sleep 30后跟CTRL- \。)

如果要禁用该功能,请使用stty命令。

在 Linux 命令行中,在 Python 启动之前:

stty quit undef
于 2013-10-08T13:17:11.567 回答
11

python模块signal很方便处理这个问题。

import signal

# Intercept ctrl-c, ctrl-\ and ctrl-z
def signal_handler(signal, frame):
    pass
signal.signal(signal.SIGINT, signal_handler)
signal.signal(signal.SIGQUIT, signal_handler)
signal.signal(signal.SIGTSTP, signal_handler)

只需将处理程序添加到(在这种情况下)什么都不做的信号。

于 2013-11-23T12:52:55.607 回答