How to Download from Jupyter Notebook without Extra Comments
如果已经被问过,或者解决方案是否简单,那就道歉。
使用Jupyter Notebook进行Python脚本编写。当我将笔记本下载为.py文件(通过单击File-> Download as-> Python(.py))时,Jupyter会添加一堆无关的注释行。它添加了一些解释器shebang,编码声明在开头,然后
1 | #!/usr/bin/env python |
即使我使用的是python3内核。
虽然我确信它有最好的意图,但我经常想要拥有自己的解释器指令并完全跳过其他注释行,因为它们除了增加杂乱之外什么都不做。
如何只下载原始代码,只有我插入的注释,单元格除了换行符之外什么都没有?另外,我想知道一个永久性的解决方案来更改配置以便以这种方式下载它,对于我机器上的所有ipynb文件,而不是一次性命令。
您可以使用此命令:
1 2 3 4 | jupyter nbconvert --to python"path/to/notebook.ipynb" \ --TemplateExporter.exclude_markdown=True \ --TemplateExporter.exclude_output_prompt=True \ --TemplateExporter.exclude_input_prompt=True |
它将生成一个仅包含Python代码且不包含
命令中的
永久配置
要使此配置永久化:
在目录
写在文件里面:
1 2 3 4 | from nbconvert import TemplateExporter TemplateExporter.exclude_markdown=True TemplateExporter.exclude_output_prompt=True TemplateExporter.exclude_input_prompt=True |
现在您可以运行命令:
1 | jupyter nbconvert --to python"path/to/notebook.ipynb" |
获取仅包含代码的Python文件。
资料来源:
1 2
延迟响应,但您可以直接更改
bconvert\templates
如果你只想要没有标题/注释的代码块,下面是我使用的基本结构:
1
2
3
4 {%- extends 'null.tpl' -%}
{% block input %}
{{ cell.source | ipython2python }}
{% endblock input %}
现在,在此环境中作为python文件的所有未来下载应该只是没有额外注释的代码。
有关自定义模板的更多详细信息,请参阅nbconvert文档:https://nbconvert.readthedocs.io/en/latest/customizing.html
注意:我在环境中编辑了模板文件,因此如果我在anaconda中切换环境,我还需要对其他环境中的模板文件进行相同的更改。