从命令行清除Jupyter笔记本的输出单元格

时间:2018-05-24 10:27:25

标签: git jupyter-notebook jupyter

通常在Jupyter笔记本电脑上合作,我认为能够从命令行清除所有输出单元以获取笔记本电脑的一个很好的功能,例如:在做一个git提交之前。但是,到目前为止我还没有找到这样的命令。它存在吗?

3 个答案:

答案 0 :(得分:3)

查看Jupyter Notebook中的保存前和保存后挂钩。

要使用此功能,步骤如下:

1。找到您的配置文件:

默认路径为/home/user/.jupyter/)。

>> jupyter --config-dir

2。复制以下代码,将其粘贴到jupyter_notebook_config.py文件中:

jupyter_notebook_config.py可以在上面的目录中找到。

直接从here复制代码。

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
        cell['outputs'] = []
        cell['execution_count'] = None

c.FileContentsManager.pre_save_hook = scrub_output_pre_save

3。重新启动jupyter笔记本

>> jupter notebook

请注意,有一个相应的保存后钩子,该钩子为.ipynb创建一个单独的.py。您也可以提交.py而不是.ipynb。还有将笔记本转换为html的选项,以使输出可视化。

答案 1 :(得分:2)

看看nbstripout

主要用作不希望在VCS中跟踪输出的用户的git过滤器或预提交钩子。

灵感来自minrk的gist

答案 2 :(得分:1)

clean_ipynb不仅清除笔记本输出,还可以通过以下操作格式化笔记本代码:运行isort,运行黑色和清除输出。

只需通过pip install clean_ipynb

进行安装

只需clean_ipynb hello.ipynb

即可运行