【问题标题】:Python - A keyboard command to stop infinite loop? [duplicate]Python - 停止无限循环的键盘命令? [复制]
【发布时间】:2012-01-10 05:37:26
【问题描述】:

可能重复:
Why can't I handle a KeyboardInterrupt in python?

我正在玩一些 Python 代码并创建了一个无限循环:

y = 0
x = -4

itersLeft = x
while(itersLeft<0):
    y = y + x
    itersLeft = itersLeft - 1
    print "y = ",y, "itersLeft = ", itersLeft

print y

是否有一个键盘快捷键可以让我停止循环 - 允许我修复循环然后重新启动它?

我试过 Ctrl+C 并没有任何运气。如果有帮助,我正在使用 Windows 7 环境。

谢谢。

编辑


我还应该提到我正在使用 Aptana Studio 3 并尝试在其中运行 Ctrl+C 命令。它在那里不起作用 - 但在常规控制台中尝试它可以正常工作。我假设这一定是因为 Aptana 环境。

【问题讨论】:

  • 应该可以。你用什么来运行它的?
  • 看到你用的是Aptana Studio 3,是不是至少3.03? jira.appcelerator.org/browse/APSTUD-1469你用任务管理器杀了它发生了什么?你试过ctrl+z吗?
  • 按下eclipseIDE上的红色停止按钮
  • 为什么这会被标记为重复?这简直是​​愚蠢的,不包括诅咒。所谓“原创”,就是捕捉KeyboardInterrupt错误。

标签: python command-line keyboard-shortcuts aptana infinite-loop


【解决方案1】:

Ctrl+C 是你需要的。如果它不起作用,那就更努力地打击它。 :-) 当然,你也可以直接关闭 shell 窗口。

编辑:你没有提到情况。作为最后的手段,您可以编写一个包含taskkill /im python.exe 的批处理文件,并将其放在您的桌面、开始菜单等处,并在您需要杀死失控脚本时运行它。当然,它会杀死所有个 Python 进程,所以要小心。

【讨论】:

  • 谢谢金德尔。我还应该提到我正在使用 Aptana Studio 3 并尝试在那里使用 Ctrl-C 命令。它在常规终端窗口中运行良好,但在 Aptana 中却不行。我实际上必须重新启动 Aptana 才能停止循环。
  • @Phillip:不了解 Aptana,但大多数 IDE 都有控制台应用程序的“停止”或“停止并重新启动”按钮。
  • 好的,感谢您的帮助 - 我只是希望键盘快捷键可以在 Aptana 中使用。
  • 如果从 rc.local 执行 python 脚本会怎样? :(
  • 我只有一个轶事“预感”,但是当设置了-u 命令行标志(用于取消缓冲标准输出/错误)时,我觉得失控的打印对&lt;C-c&gt; 的响应更加迅速。例如。 python -u my-loop-script.py.
猜你喜欢
  • 2017-11-16
  • 2020-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多