Python CTRL + C退出解释器?

时间:2013-09-09 21:44:46

标签: python python-2.7 interpreter

Python 2.73

当我点击 CTRL + C 时,为什么它在我的笔记本电脑上,我可以退出解释器并在我的桌面上点击 CTRL + < kbd> C 将使解释器向我发回KeyboardInterrupt消息。如何摆脱这个KeyboardInterrupt并返回退出 CTRL + C

在我的桌面上,需要输入 CTRL + Z 并按Enter键退出。

我在两台计算机上都使用PowerShell。相同的64位,一个是Win7,一个是Win8

2 个答案:

答案 0 :(得分:2)

您可以将 CTRL - C 的信号处理程序更改为退出解释器的内容:

import signal
import sys
signal.signal(signal.SIGINT, lambda number, frame: sys.exit())

您可以将该代码放在一个文件中,以便在交互式会话启动时自动运行,然后将环境变量PYTHONSTARTUP设置为该文件的名称:

http://docs.python.org/3/using/cmdline.html?highlight=startup#envvar-PYTHONSTARTUP

答案 1 :(得分:1)

上一个答案的略短版本:

import signal
signal.signal(signal.SIGINT, signal.SIG_DFL)

SIG_DFL表示默认信号处理,因此Python无法捕获它 提出KeyboardInterrupt例外。