在我的笔记本中,我有一个单元格返回临时计算结果。它有点长,所以在它运行后,我想隐藏它,并在需要时显示它。
要手动完成,我可以双击输出的左侧隐藏它
但有什么方法可以通过代码来做到这一点?例如,
单元格的最后一行,使用%%hide output
之类的命令,输出将在完成运行后隐藏。
此外,我可以在输出HTML中获得此功能吗?
答案 0 :(得分:29)
在单元格的末尾添加;
以隐藏该单元格的输出。
答案 1 :(得分:16)
在较新的版本(我写这篇文章的时间为5.0.0)中,按下' o'在命令模式下,隐藏单元格的输出。如果您在输出前面三次点击,也会发生同样的情况。
答案 2 :(得分:9)
您可以将%%capture
添加到单元格的开头。
Jupyter提供了一个神奇的单元格命令%%capture
,该命令可让您捕获该单元格的所有输出。
您可以像这样使用它:
%%capture test
print('test')
test.stdout
=>'测试\ n'
https://ipython.readthedocs.io/en/stable/interactive/magics.html
答案 3 :(得分:7)
在新版本的Jupiter Notebook中,选择所需的单元格,确保您处于命令模式,然后在菜单栏上按单元格> 当前输出。然后,您有三个选择:
此外,如果选择“全部输出”而不是“当前输出”,则可以对文档中的所有单元格应用相同的效果。
答案 4 :(得分:1)
根据this,我几分钟前就为自己想出了这个:
%%javascript
$('#maintoolbar-container').children('#toggleButton').remove()
var toggle_button = ("<button id='toggleButton' type='button'>Show Code</button>");
$('#maintoolbar-container').append(toggle_button);
var code_shown = false;
function code_toggle()
{
if (code_shown)
{
console.log("code shown")
$('div.input').hide('500');
$('#toggleButton').text('Show Code');
}
else
{
console.log("code not shown")
$('div.input').show('500');
$('#toggleButton').text('Hide Code');
}
code_shown = !code_shown;
}
$(document).ready(function()
{
code_shown=false;
$('div.input').hide();
});
$('#toggleButton').on('click', code_toggle);
确实有一个小问题:每次运行该单元格(我放在顶部)时,它会添加一个按钮。所以,这是需要修复的东西。需要检查maintoolbar-container
以查看该按钮是否已存在,然后不再添加。
修改强>
我添加了必要的代码:
$('#maintoolbar-container').children('#toggleButton').remove()
答案 5 :(得分:0)
不完全是您想要的,但是效果可能足以满足您的目的:
查看%%捕获魔法(https://nbviewer.jupyter.org/github/ipython/ipython/blob/1.x/examples/notebooks/Cell%20Magics.ipynb)。它使您可以将单元格输出分配给变量。通过稍后调用该变量,您可以看到输出。
答案 6 :(得分:0)
此代码片段捕获 stdout 输出并将其显示为某个可折叠部分:
import contextlib
import io
import IPython.display
@contextlib.contextmanager
def colapsible_stdout(name: str = 'stdout'):
f = io.StringIO()
with contextlib.redirect_stdout(f):
yield
content = f.getvalue()
content = content.replace('\n', '<br/>')
content = IPython.display.HTML(
f'<details><summary>{name}</summary>{content}</details>'
)
IPython.display.display(content)
用法:
with colapsible_stdout():
print('Some text')
print('Some other text')
默认情况下该部分是折叠的,但我为截图将其展开。
答案 7 :(得分:-1)
如果你不介意一点点黑客攻击,那么你可以编写一个简单的脚本,将每个单元格的“collapsed”属性从false转换为true 在笔记本.ipynb文件(这是一个简单的JSON文件)。 但是,如果.ipynb格式发生变化,将来可能会失败。