是否有解决方案可以提取笔记本的所有代码? 例如,如果我想生成我的笔记本“ source.py”的源文件,其中包含笔记本代码单元中的所有代码,那么这可能吗?
谢谢!
答案 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
编辑:仅输出代码和注释,不包含降价,输入和输出提示
答案 3 :(得分:0)
如果您使用的是 jupyter lab,那么选项是:
File > Export Notebook As > Executable Script
答案 4 :(得分:-1)
有一个“丑陋”的解决方案。选择笔记本的所有单元格。合并它们,然后复制并粘贴所有代码。