Jupyter:内核准备就绪时以编程方式清除所有单元格的输出



我有一个问题,关于如何在笔记本完成加载后(当内核准备就绪时(以及用户自己手动执行代码之前,以编程方式清除\清理 Jupyter 笔记本中所有单元格的输出。基本上,我希望笔记本在完成加载时看起来很干净,并且我想自动执行此操作。

如何将单个初始化单元格中的clear_output()命令强加到笔记本中的所有其他单元格上?

谢谢。

对于受信任的笔记本(有关受信任/不受信任的笔记本的详细信息,请参阅 http://jupyter-notebook.readthedocs.io/en/stable/security.html#Our-security-model,但简而言之,为此目的,相关的一点是您在计算机上创建的任何内容都应该已经受信任(,您可以在开头使用 javascript 单元格,如下所示:

require(['base/js/namespace', 'base/js/events'],
function (Jupyter, events) {
// save a reference to the cell we're currently executing inside of,
// to avoid clearing it later (which would remove this js)
var this_cell = $(element).closest('.cell').data('cell');
function clear_other_cells () {
Jupyter.notebook.get_cells().forEach(function (cell) {
if (cell.cell_type === 'code' && cell !== this_cell) {
cell.clear_output();
}
Jupyter.notebook.set_dirty(true);
});
}
if (Jupyter.notebook._fully_loaded) {
// notebook has already been fully loaded, so clear now
clear_other_cells();
}
// Also clear on any future load
// (e.g. when notebook finishes loading, or when a checkpoint is reloaded)
events.on('notebook_loaded.Notebook', clear_other_cells);
});

这在不受信任的笔记本中不起作用,javascript 输出是经过清理的,但如果你正在创建笔记本,它应该可以正常工作。您甚至可以将整个内容包装成一个 nb扩展名,如果您不希望每个笔记本中都有该单元格。

<shameless plug>有关 nbextension 的示例,请参阅 https://github.com/ipython-contrib/jupyter_contrib_nbextensions,或在那里提交问题以建议添加类似以下内容</shameless plug>

最新更新