详细介绍 Jupyter nbconvert 工具及其用法:如何将 Notebook 转换为 Python 脚本

发布于:2025-03-12 ⋅ 阅读:(41) ⋅ 点赞:(0)

nbconvert 是 Jupyter 提供的一个非常强大的工具,允许用户将 Jupyter Notebook 文件(.ipynb)转换成多种格式,包括 Python 脚本(.py)、HTML、PDF、LaTeX 等。你可以通过命令行来运行 nbconvert,也可以在 Jupyter Notebook 中通过一些自定义的设置来实现转换。
在这里插入图片描述

安装 nbconvert

通常情况下,nbconvert 会随 Jupyter 一起安装,因此不需要单独安装。如果你没有安装,可以通过以下命令安装:

pip install nbconvert

或者,如果你是使用 Anaconda 管理环境,可以使用:

conda install nbconvert

使用 nbconvert 工具将 Jupyter Notebook 转换为 Python 脚本

  1. 命令行基本语法
    nbconvert 的基本语法如下:

jupyter nbconvert --to python <notebook_filename>.ipynb

这条命令会将 Jupyter Notebook 文件(例如 1Federated.ipynb)转换为 Python 脚本文件(1Federated.py)。
2. 常见的转换格式
nbconvert 支持多种输出格式。使用 --to 参数可以指定目标格式。常见的几种格式包括:

  • Python​(.py):将 Notebook 文件转换为 Python 脚本。
    jupyter nbconvert --to python <notebook_filename>.ipynb
  • HTML​(.html):将 Notebook 文件转换为 HTML 格式,以便在浏览器中查看。
    jupyter nbconvert --to html <notebook_filename>.ipynb
  • PDF​(.pdf):将 Notebook 文件转换为 PDF 格式(需要安装 LaTeX 或 pandoc)。

jupyter nbconvert --to pdf <notebook_filename>.ipynb

  • Markdown​(.md):将 Notebook 转换为 Markdown 格式,适合在其他 Markdown 支持的平台上查看。
    jupyter nbconvert --to markdown <notebook_filename>.ipynb

  • LaTeX​(.tex):将 Notebook 转换为 LaTeX 格式,适合进一步处理和排版。

    jupyter nbconvert --to latex <notebook_filename>.ipynb

  • Notebook​(.ipynb):将 Notebook 转换为一个新的 Notebook 文件,适用于有多个版本的文件之间的转换。
    jupyter nbconvert --to notebook <notebook_filename>.ipynb

  1. 选择输出文件名
    如果你想指定输出文件的名称,可以使用 --output 参数:
    jupyter nbconvert --to python <notebook_filename>.ipynb --output <output_filename>.py

    例如,以下命令会将 1Federated.ipynb 转换为 1Federated_script.py

jupyter nbconvert --to python 1Federated.ipynb --output 1Federated_script.py
4. 批量转换
如果你有多个 Notebook 文件,并且想要批量转换为 Python 脚本,可以使用通配符。例如,将当前目录下的所有 .ipynb 文件转换为 .py 文件:
jupyter nbconvert --to python *.ipynb
5. 转换并运行代码
nbconvert 还可以在转换过程中自动运行代码,这对于生成包含最新输出的报告非常有用。可以通过 --execute 参数实现:

jupyter nbconvert --to python --execute 1Federated.ipynb

这会运行 1Federated.ipynb 中的所有代码单元并将其输出包含在转换后的 Python 脚本中。
6. 其他选项

  • ​**--template**​:你可以选择不同的模板来改变输出的样式。常用模板包括 basiclabnotebook 等。例如:
jupyter nbconvert --to html --template lab 1Federated.ipynb
  • ​**--no-input**​:如果你不希望输出 Python 脚本中包含代码单元的输入部分(即去掉代码),可以加上 --no-input 参数:

jupyter nbconvert --to python --no-input 1Federated.ipynb

这将生成只包含输出结果的 Python 脚本。

通过 Jupyter Notebook 界面导出

如果你不想使用命令行,也可以直接在 Jupyter Notebook 界面中导出 Notebook:

  1. 打开 1Federated.ipynb 文件。
  2. 点击菜单栏中的 ​File​(文件)。
  3. 从下拉菜单中选择 ​Download as​(下载为)。
  4. 选择 ​**Python (.py)**​,即可将 Notebook 文件下载为 Python 脚本文件。

总结

  • nbconvert 工具是一个非常强大的命令行工具,可以将 Jupyter Notebook 文件转换为多种格式,如 Python 脚本、HTML、PDF 等。
  • 可以使用 --to 参数指定输出格式,使用 --output 参数自定义输出文件名。
  • 还可以通过 --execute 在转换时执行代码,确保生成的输出是最新的。
  • Jupyter 界面也提供了导出功能,适合不熟悉命令行的用户。

参考

https://nbconvert.readthedocs.io/en/latest/install.html
https://anaconda.org/conda-forge/nbconvert
https://blog.csdn.net/qq_36178962/article/details/115870759
https://www.w3ccoo.com/jupyter/jupyter_converting_notebooks.html