Jupyter notebook 防止Jupyter笔记本中的单元格保存到磁盘

Jupyter notebook 防止Jupyter笔记本中的单元格保存到磁盘,jupyter-notebook,jupyter,Jupyter Notebook,Jupyter,我有一个Jupyter Python笔记本,其中一个特定单元有非常大的视觉输出(包括嵌入数据在内的多兆字节Javascript)。有没有办法标记单元格,使输出不保存到.ipynb文件中?我不知道有没有办法在不安装Jupyter扩展名的情况下执行此操作。我认为这可以在前端完成,例如,使用JS代码的模板创建一个小部件扩展,然后填充模板作为输出,因为小部件状态是有选择地保存的 如果您希望以最少的工作量获得合理的解决方案,并且可以修改Jupyter服务器环境,我建议您使用inJupyter\u note

我有一个Jupyter Python笔记本,其中一个特定单元有非常大的视觉输出(包括嵌入数据在内的多兆字节Javascript)。有没有办法标记单元格,使输出不保存到
.ipynb
文件中?

我不知道有没有办法在不安装Jupyter扩展名的情况下执行此操作。我认为这可以在前端完成,例如,使用JS代码的模板创建一个小部件扩展,然后填充模板作为输出,因为小部件状态是有选择地保存的

如果您希望以最少的工作量获得合理的解决方案,并且可以修改Jupyter服务器环境,我建议您使用in
Jupyter\u notebook\u config.py
。文档中已经有一个剥离输出的示例。我已经修改了它(但没有测试!)以删除标记为
no save
的单元格的JS输出

def scrub_output_pre_save(model, **kwargs):
    """scrub output before saving notebooks"""
    # only run on notebooks
    if model['type'] != 'notebook':
        return
    # only run on nbformat v4
    if model['content']['nbformat'] != 4:
        return

    for cell in model['content']['cells']:
        if cell['cell_type'] != 'code':
            continue
        metadata = cell['metadata']
        if 'tags' in metadata and 'no-save' in metadata['tags']:
            cell['outputs'] = []
            cell['execution_count'] = None


 c.FileContentsManager.pre_save_hook = scrub_output_pre_save
如果您需要它是可安装/可重用的,那么上述代码可以作为一个组件打包和分发