如何限制Ipython笔记本的给定单元格中的输出行数?

时间:2014-07-05 08:34:12

标签: ipython-notebook jupyter-notebook

有时我的Ipython笔记本会崩溃,因为我在一个大循环或一个递归函数中留下了print语句。内核显示busystop按钮通常没有响应。最终Chrome会问我是否要杀死该页面或等待。

有没有办法限制给定单元格中的输出行数?或者任何其他方法来避免这个问题?

3 个答案:

答案 0 :(得分:3)

您可以使用this command来抑制输出:

‘;’ at the end of a line 

也许在循环中创建一个条件以抑制输出超过某个阈值。

答案 1 :(得分:1)

这也引起了我最近的一些问题。我写了一个类来为print函数添加一些保护。我只是把它扔在github上:staggerprint on github

我会将“使用”部分放在笔记本的顶部以防止这些类型的崩溃。如果我发现如何从笔记本级别改变这种行为,我将添加另一个答案,但现在必须这样做!

答案 2 :(得分:1)

对于任何绊倒的人:

如果你想看到一些输出而不是完全抑制输出,那么extension会被称为limit-output

您必须按照第一个链接上的扩展程序的安装说明进行操作。然后我运行以下代码来更新每个单元格输出的最大字符数:

from notebook.services.config import ConfigManager
cm = ConfigManager().update('notebook', {'limit_output': 10})

注意:您需要运行代码块,然后完全重启笔记本服务器(而不仅仅是内核)才能使更改生效。

运行Python 2.7.12内核的jupyter v4.0.6上的结果

for i in range(0,100):
    print i

0
1
2
3
4

limit_output extension: Maximum message size exceeded