是否有办法提取笔记本中的所有代码? 例如,如果我想要生成一个名为“source.py”的源文件,其中包含笔记本电脑中代码单元格中的所有代码,这是否可能?
谢谢!
是否有办法提取笔记本中的所有代码? 例如,如果我想要生成一个名为“source.py”的源文件,其中包含笔记本电脑中代码单元格中的所有代码,这是否可能?
谢谢!
您可以使用命令行工具nbconvert将ipynb文件转换为其他各种格式。
将其转换为.py文件的最简单方法是:
jupyter nbconvert --no-prompt --to script notebook_name.ipynb
它只输出代码和注释,而不包括markdown、输入和输出提示。还有--stdout
选项。
但您也可以使用jq解析笔记本的JSON:
jq -j '
.cells
| map( select(.cell_type == "code") | .source + ["\n\n"] )
| .[][]
' \
notebook.ipynb > source.py
你可以使用 文件 -> 下载为 -> Python (.py)
来导出所有代码单元格为一个单独的 .py
文件。
文件 > 另存为可执行脚本
。有一个“丑陋”的解决方案。选择笔记本的所有单元格。合并它们,然后只需复制并粘贴所有代码。
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'])
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的其他部分。