如何从Jupyter Notebook下载而无需额外注释

Del*_*lla 5 comments shebang python-3.x jupyter-notebook

抱歉,是否已经提出要求,或者解决方案是否简单。

使用Jupyter Notebook进行Python脚本编写。当我将笔记本作为.py文件下载时(通过单击File-> Download as-> Python(.py)),Jupyter添加了一堆多余的注释行。它添加了一些解释器shebang,在开始处编码了声明,然后#In[], #Out[]为每个单元格等等。为了使事情更麻烦,shebang看起来像

#!/usr/bin/env python
Run Code Online (Sandbox Code Playgroud)

即使我使用的是python3内核。

尽管我确信它是最好的意图,但我经常想拥有自己的解释器指令,而完全跳过其他注释行,因为它们只会增加混乱。

如何仅下载原始代码,仅包含插入的注释以及单元格之间只有换行符而分隔的原始代码?另外,我想知道一个永久性的解决方案,用于更改配置以这种方式下载,以解决我机器上的所有ipynb文件,而不是一次性的命令。

Amm*_*sfi 8

你可以使用这个命令:

jupyter nbconvert --to python "path/to/notebook.ipynb" \
--TemplateExporter.exclude_markdown=True \
--TemplateExporter.exclude_output_prompt=True \
--TemplateExporter.exclude_input_prompt=True
Run Code Online (Sandbox Code Playgroud)

它将生成一个 Python 文件,其中仅包含您的 Python 代码,不包含 #In[], #Out[]

\命令中的in 只是将命令写在多行上,可以删除。

永久配置

要使此配置永久化:

  1. jupyter_nbconvert_config.py在目录内创建一个名为的文件~/.jupyter/。如果目录不存在,则创建该目录。

  2. 在文件里面写:

    from nbconvert import TemplateExporter
    TemplateExporter.exclude_markdown=True 
    TemplateExporter.exclude_output_prompt=True
    TemplateExporter.exclude_input_prompt=True
    
    Run Code Online (Sandbox Code Playgroud)
  3. 现在您可以运行以下命令:

    jupyter nbconvert --to python "path/to/notebook.ipynb"
    
    Run Code Online (Sandbox Code Playgroud)

    获取仅包含代码的 Python 文件。

资料来源: 1 2