仅从Jupyter Notebook中获取代码

时间:2019-01-24 15:36:41

标签: python jupyter-notebook

是否有解决方案可以提取笔记本的所有代码? 例如,如果我想生成我的笔记本“ source.py”的源文件,其中包含笔记本代码单元中的所有代码,那么这可能吗?

谢谢!

5 个答案:

答案 0 :(得分:3)

您可以执行File -> Download as -> Python (.py)-这会将所有代码单元导出为单个.py文件

答案 1 :(得分:0)

由于笔记本格式为JSON,因此仅提取代码单元的文本内容相对容易。当您使用Python API for working with notebook files时,该任务将变得更加容易。

以下内容将为您提供标准输出上的代码。您可以类似地轻松地以其他方式处理它。请记住,代码源可能没有终止换行符。

from nbformat import read, NO_CONVERT

with open("Some Notebook.ipynb") as fp:
    notebook = read(fp, NO_CONVERT)
cells = notebook['cells']
code_cells = [c for c in cells if c['cell_type'] == 'code']
for cell in code_cells:
    print(cell['source'])

不过,笔记本节点比字典灵活一些,并且允许属性(.name)访问字段以及下标(['name'])。作为一个受到打字挑战的人,我觉得最好写

cells = notebook.cells
code_cells = [c for c in cells if c.cell_type == 'code']

for cell in code_cells:
    print(cell.source)

在回答这个问题时,我意识到nbformat库已解除捆绑,因此可以与pip一起安装,而无需Jupyter的其余部分。

答案 2 :(得分:0)

您可以使用命令行工具“ nbconvert”将ipynb文件转换为其他各种格式。 将其转换为.py文件的最简单方法是:

jupyter nbconvert --to script notebook_name.ipynb

Source

编辑:仅输出代码和注释,不包含降价,输入和输出提示

答案 3 :(得分:0)

如果您使用的是 jupyter lab,那么选项是: File > Export Notebook As > Executable Script

答案 4 :(得分:-1)

有一个“丑陋”的解决方案。选择笔记本的所有单元格。合并它们,然后复制并粘贴所有代码。