将Jupyter Notebook转换为Python脚本的3种方法

2025年1月4日 | 阅读 4 分钟

Jupyter Notebook 中的文件保存为 .ipynb 格式。它是一个包含 Markdown、代码和输出的 JSON 文档。在许多情况下,我们希望将 Jupyter Notebook 转换为普通的 Python 脚本。例如,您可能希望将 Notebook 打包成一个独立的库,或者在存储库中维护 Python 代码。这里有三种方法可以将 Jupyter Notebook 文件导出为 Python 脚本。

1. 使用 GUI 将代码另存为 .py 文件

它将 Python 编程与 Markdown 结合在一起。输出是 Pandas DataFrame 和 Figure。下图显示了 Notebook。

Convert Jupyter Notebook to Python Script in 3 Ways

Notebook 以 ipynb 文件格式保存。notebook.ipynb 文件的内容如下所示。

Notebook 由多种单元格类型组成。每个单元格都包含有关源和输出的信息(以多种形式)。图像使用 Base64 进行编码。

要将 Notebook 导出为 Python .py 文件,我们可以使用 Jupyter Notebook 的用户界面。请在“文件”->“下载为”下选择“Python (.py)”。

Convert Jupyter Notebook to Python Script in 3 Ways

Web 浏览器将下载 notebook.py 文件,其中包含以下内容:

没有输出。附加的注释包含了关于单元格的详细信息:# In [1]。Markdown 文本也有注释。文件开头现在包含 Python shebang。

2. 打开命令行界面将 Jupyter Notebook 转换为 Python 文件

使用此命令将 Notebook 导出为 .py 文件。有一个名为 nbconvert 的实用程序可用。由于它在内部使用(在“下载为”功能中),因此随 Jupyter Notebook 一起安装。

示例输出

 
[NbConvertApp] Converting notebook notebook.ipynb to python
[NbConvertApp] Writing 233 bytes to notebook.py   

生成的 Python 文件的内容与用户界面文件的内容相同。

3. 使用 jupytext 将 Jupyter Notebook 与 Python 脚本链接

使用 jupytext 包来同步 Jupyter Notebook 和 Python 脚本。这确保两个文件包含相同的代码 .py 和 .ipynb。此外,它还提供了命令行版本。

您可以使用以下说明安装 Jupytext:

安装后,将在“文件”菜单下提供一个新选项。您可以选择如何将 Python 脚本与您的 Notebook 配对。

Convert Jupyter Notebook to Python Script in 3 Ways

以下是示例 Notebook 中轻量级格式的 Python 脚本:

以下是以百分比显示的相同脚本。单元格边界显示为 #%%。许多 IDE(包括 PyCharm、Spyder 和 VS Code)都支持此格式。

每次保存 Notebook 文件时,Python 脚本都会更新。

总结

Jupyter Notebook 是一个用于试验编程并与他人分享的绝佳工具。它将代码、Markdown 和输出以 JSON 格式存储在 ipynb 文件中。可以通过命令行或用户界面来完成。jupytext 和 nbconvert 这两个包很重要,值得牢记。