python - Jupyter:当内核就绪时以编程方式清除所有单元的输出

标签 python ipython jupyter-notebook 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 输出已被清理,但如果您正在创建笔记本,它应该可以正常工作。如果您不想在每个笔记本中都包含单元格,您甚至可以将整个内容包装到 nbextension 中。

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

关于python - Jupyter:当内核就绪时以编程方式清除所有单元的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45638720/

相关文章:

python - 根据第一个元素组合嵌套列表

python - 使用 CouchDB-Python 获取文档级别的完整修订列表?

python - 字符串赋值

python - 让 IPython 导入我的意思

jupyter-notebook - Bokeh 0.12.10 不在 GMapPlot 上渲染段

python - django迁移中如何获取当前数据库?

emacs - 编译前是否可以不要求保存缓冲区?

python - 在 iPython 控制台中运行代码的中间部分

jupyter-notebook - IPython REPL 任何地方 : how to share application context with IPython console for future interaction?

python - Jupyter Notebook 在哪里/如何连接到 python 的 repr/str