当前位置:

首页 > 编程开发 > 将JupyterNotebook(.ipynb)文件转换为Python(.py)文件的5种方法

将JupyterNotebook(.ipynb)文件转换为Python(.py)文件的5种方法

将JupyterNotebook文件转换为Python脚本共有五种方法:Jupyter界面直接下载、使用nbconvert命令行工具、编写Python自定义脚本、通过VSCode插件导出、以及利用PyCharm或DataSpell导出。日常推荐使用nbconvert命令行进行批量转换,特殊需求可借助自定义脚本实现过滤与自动化。

在日常数据分析和机器学习开发中,Jupyter Notebook 确实是交互式开发的利器,这点想必大家都有体会。但有些场景下,我们得把它转成纯 Python 脚本(.py)——比如生产环境部署、代码版本管理、团队协作,或是用 Vim 快速改代码。下面整理了 5 种转换方法,从图形界面到命令行、从 IDE 插件到自定义脚本,总有一款能对上你的胃口。

一、为什么要进行转换?

在动手转换之前,不妨先想想:到底什么场景下需要这么做?

场景 说明
生产环境部署 Jupyter Notebook 不适合直接在生产服务器上跑,转成 .py 后部署和调度都方便很多
代码版本管理 .ipynb 文件里塞了大量 JSON 元数据,Git diff 看起来一团糟,.py 文件就清爽多了
团队协作 有人习惯用 PyCharm、VS Code 等 IDE 写纯 Python,你总不能强迫人家打开 Jupyter
纯文本编辑 有时需要在 Vim、Nano 里快速扫一眼或修改代码,.ipynb 显然干不了这事
模块化开发 Notebook 里的代码拆成可复用的 Python 模块,那是迟早的事

二、方法一:使用 Jupyter Notebook 自带功能(最简单)

如果你已经打开了 Notebook,这就是最直截了当的办法。

操作步骤

  1. 打开你的 .ipynb 文件
  2. 点击顶部菜单栏的 File → Download as → Python (.py)
  3. 浏览器自动下载一个 .py 文件到本地

操作示意图

将JupyterNotebook(.ipynb)文件转换为Python(.py)文件的5种方法

优点

  • ✅ 无需安装任何额外工具
  • ✅ 零门槛,点几下就行
  • ✅ 代码结构保留完好

缺点

  • ❌ 必须手动打开 Jupyter
  • ❌ 不适合批量转换
  • ❌ 没法自定义输出格式

三、方法二:使用命令行工具 jupyter nbconvert(推荐)

nbconvert 是 Jupyter 官方出品的命令行转换工具,功能扎实,批量处理、集成到 CI/CD 都不在话下。

1. 安装 Jupyter(如未安装)

pip install jupyter

或者只装 nbconvert 独立包:

pip install nbconvert

2. 基本转换命令

打开终端(Windows 用 CMD / PowerShell,macOS/Linux 用 Terminal),进入 .ipynb 所在目录,敲一行命令:

jupyter nbconvert --to script your_notebook.ipynb

示例:

# 进入文件目录
cd D:\Projects\MyProject
# 执行转换
jupyter nbconvert --to script data_analysis.ipynb

3. 终端输出示例

[NbConvertApp] Converting notebook data_analysis.ipynb to script
[NbConvertApp] Writing 15170 bytes to data_analysis.py

转换成功后,同级目录下就会多出一个 data_analysis.py 文件。

4. 批量转换多个文件

假如需要一次搞定整个目录下的所有 .ipynb 文件:

Windows (PowerShell):

Get-ChildItem *.ipynb | ForEach-Object { jupyter nbconvert --to script $_.Name }

macOS / Linux (Bash):

for file in *.ipynb; do jupyter nbconvert --to script "$file"; done

5. 常用参数说明

参数 说明 示例
--to script 转换为 Python 脚本 jupyter nbconvert --to script file.ipynb
--to python 同上(script 的别名) jupyter nbconvert --to python file.ipynb
--output 指定输出文件名 jupyter nbconvert --to script file.ipynb --output myscript
--stdout 输出到标准输出(不保存文件) jupyter nbconvert --to script file.ipynb --stdout
--template 使用自定义模板 jupyter nbconvert --to script file.ipynb --template full

优点

  • ✅ 不用打开浏览器
  • ✅ 支持批量转换
  • ✅ 能塞进自动化脚本/CI/CD
  • ✅ 支持自定义模板

缺点

  • ❌ 得记住命令参数
  • ❌ 对新手有一丢丢门槛

四、方法三:使用 Python 脚本自定义转换

如果你想在转换过程中干点“私活”——比如过滤掉特定单元格、给文件头加个注释、把魔法命令剔除掉——那就自己写个脚本吧。

基础版本:仅提取代码单元格

import json
def convert_ipynb_to_py(ipynb_file, py_file):
    """
    将 Jupyter Notebook 文件转换为 Python 脚本文件
    参数:
        ipynb_file: 输入的 .ipynb 文件路径
        py_file: 输出的 .py 文件路径
    """
    # 读取 .ipynb 文件(JSON 格式)
    with open(ipynb_file, 'r', encoding='utf-8') as f:
        notebook = json.load(f)
    # 写入 .py 文件
    with open(py_file, 'w', encoding='utf-8') as f:
        for cell in notebook['cells']:
            # 只提取 code 类型的单元格
            if cell['cell_type'] == 'code':
                # 将 source 列表拼接为字符串
                source = ''.join(cell['source'])
                f.write(source + '\n\n')
# 使用示例
if __name__ == "__main__":
    convert_ipynb_to_py('your_notebook.ipynb', 'your_notebook.py')
    print("转换完成!")

进阶版本:保留 Markdown 注释 + 过滤魔法命令

import json
import re

def convert_ipynb_to_py_advanced(ipynb_file, py_file):
    """
    高级转换:保留 Markdown 作为注释,过滤 Jupyter 魔法命令
    """
    with open(ipynb_file, 'r', encoding='utf-8') as f:
        notebook = json.load(f)
    
    with open(py_file, 'w', encoding='utf-8') as f:
        # 写入文件头
        f.write('# -*- coding: utf-8 -*-\n')
        f.write(f'# Converted from: {ipynb_file}\n')
        f.write('# ============================================\n\n')
        
        for i, cell in enumerate(notebook['cells']):
            if cell['cell_type'] == 'markdown':
                # 将 Markdown 转换为 Python 注释
                source = ''.join(cell['source'])
                comment_lines = ['# ' + line for line in source.split('\n')]
                f.write('\n'.join(comment_lines) + '\n\n')
                
            elif cell['cell_type'] == 'code':
                source = ''.join(cell['source'])
                
                # 过滤 Jupyter 魔法命令(如 %matplotlib inline)
                lines = source.split('\n')
                filtered_lines = []
                for line in lines:
                    if not line.strip().startswith('%') and not line.strip().startswith('!'):
                        filtered_lines.append(line)
                
                if filtered_lines:
                    f.write('\n'.join(filtered_lines) + '\n\n')

# 使用示例
convert_ipynb_to_py_advanced('data_analysis.ipynb', 'data_analysis_clean.py')

优点

  • ✅ 完全可控,想怎么改就怎么改
  • ✅ 能塞进数据处理流水线
  • ✅ 可以过滤掉魔法命令、输出结果等无用内容

缺点

  • ❌ 得会写代码
  • ❌ 某些极端情况下可能处理不完美

五、方法四:使用 VS Code 插件(开发者友好)

如果你平时就用 Visual Studio Code 写代码,那装个插件一劳永逸。

操作步骤

安装 Jupyter 插件

  • 打开 VS Code
  • 进入扩展商店(Ctrl+Shift+X)
  • 搜索并安装 Jupyter(Microsoft 官方那个)

打开 .ipynb 文件

  • 在 VS Code 中打开你的 Notebook 文件

导出为 Python 脚本

  • 点击右上角的 …(更多操作)
  • 选择 Export → Python Script
  • 选个保存位置,收工

优点

  • ✅ 开发环境里一点切换都不需要
  • ✅ 可视化操作,爽快
  • ✅ 调试完 Notebook 直接导出

缺点

  • ❌ 得装 VS Code 和插件
  • ❌ 服务器环境基本没用

六、方法五:使用 PyCharm / DataSpell(JetBrains 用户)

如果你用的是 JetBrains 家族(PyCharm Professional 或 DataSpell),也可以直接导出。

操作步骤

打开 .ipynb 文件

  • 在 PyCharm 中打开 Notebook 文件

导出操作

  • 点击 Notebook 工具栏上的 Convert to Python File 按钮
  • 或者右键文件 → Export to Python File

优点

  • ✅ 和 IDE 深度绑定
  • ✅ 代码结构清爽

缺点

  • ❌ 只有 PyCharm Professional / DataSpell 支持
  • ❌ 社区版(Community)没有这功能

七、转换效果对比

假设我们有这样一个 Notebook 内容:

# Cell 1 (Markdown)
# ## 数据分析示例

# Cell 2 (Code)
import pandas as pd
import matplotlib.pyplot as plt

# Cell 3 (Code)
%matplotlib inline
df = pd.read_csv('data.csv')
df.head()

# Cell 4 (Code)
plt.plot(df['x'], df['y'])
plt.show()

转换后的 .py 文件(方法三进阶版)

# -*- coding: utf-8 -*-
# Converted from: analysis.ipynb
# ============================================

# ## 数据分析示例

import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_csv('data.csv')
df.head()

plt.plot(df['x'], df['y'])
plt.show()

八、常见问题 FAQ

Q1: 转换后的 .py 文件能直接运行吗?

A: 大多数情况可以直接跑,但如果 Notebook 里用了魔法命令(如 %matplotlib inline、%timeit),需要在 .py 里手动删除或替换掉。

Q2: 如何保留 Notebook 中的输出结果?

A: jupyter nbconvert --to script 默认不保留输出。想保留的话,可以用 --to python 加自定义模板,或者先导出成 HTML。

Q3: 转换后的中文注释乱码怎么办?

A: 转换时指定 encoding='utf-8',并在 .py 文件头部加上 # -*- coding: utf-8 -*- 即可。

Q4: 可以反向转换吗?(.py → .ipynb)

A: 当然可以!用 jupytext 工具:

pip install jupytext
jupytext --to notebook your_script.py

九、总结对比表

方法 难度 适用场景 批量转换 自定义
Jupyter 界面下载 ⭐ 简单 偶尔转换 ❌ ❌
jupyter nbconvert 命令 ⭐⭐ 中等 日常开发、批量处理 ✅ ✅
Python 脚本自定义 ⭐⭐⭐ 较难 特殊需求、自动化 ✅ ✅✅✅
VS Code 导出 ⭐ 简单 VS Code 用户 ❌ ❌
PyCharm / DataSpell ⭐ 简单 JetBrains 用户 ❌ ❌

十、写在最后

这篇介绍了 5 种将 Jupyter Notebook 转换为 Python 文件的方法,从最简单的界面操作到灵活的脚本自定义,你可以根据手头的场景挑最顺手的那一个。

个人建议:日常使用推荐 方法二(命令行),简单高效;有特殊需求时选择 方法三(Python 脚本) 进行自定义处理。

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
作者最新文章
编程开发 Notebook
相关文章 更多
Jupyter Notebook 7.5.7同步JupyterLab 4.5.8
Jupyter Notebook 7.5.7同步JupyterLab 4.5.8

JupyterNotebook7.5.7于2026年6月4日发布,核心变化为同步升级JupyterLab至4.5.8并固定界面测试Node.js版本为22.x。该版本无新增功能,属于常规维护更新,二次开发者需注意扩展兼容性,建议在测试环境验证后再更新。本次更新旨在提升稳定性。

Jupyter Notebook 7.6.0发布:补齐文件浏览器功能
Jupyter Notebook 7.6.0发布:补齐文件浏览器功能

JupyterNotebook7.6.0于2026年6月18日发布,底层升级至JupyterLab4.6.0。主要更新包括补齐文件浏览器功能、关闭内核前增加确认对话框、支持打开共享内核的草稿控制台,并调整了启动树命令位置。不再支持Python3.9,需使用Python3.10以上版本。

Jupyter Notebook 7.6.1升级JupyterLab 4.6.2
Jupyter Notebook 7.6.1升级JupyterLab 4.6.2

JupyterNotebook7.6.1于2026年7月22日发布,属维护版本,主要将依赖的JupyterLab升级至4.6.2,并同步更新GitHubActions配置。未新增功能,重点在于底层组件对齐与发布流程维护。建议已部署7.6.0的环境进行工作流测试,升级前需确认Python3.10及以上版本。

Jupyter Notebook 7.6停止支持Python 3.9
Jupyter Notebook 7.6停止支持Python 3.9

JupyterNotebook7.6正式停止支持Python3.9,最低要求Python3.10及以上。旧环境强行升级存在风险,建议新建Python3.10以上虚拟环境,测试内核运行、计算结果输出及扩展插件兼容性,确保稳定迁移。

Google NotebookLM被发现正在测试「个人智慧」 预判你的需求与语气
Google NotebookLM被发现正在测试「个人智慧」 预判你的需求与语气

GoogleNotebookLM正测试“个人智慧”功能,赋予AI长期记忆与个性化学习能力,可基于历史交互自动调整回应风格、专业深度及语气。系统采用全域与局部双轨架构,支持统一档案或项目专属配置,推动AI从通用工具向个性化智能伙伴演进。

最好用的AI专案管理工具居然是Google的「NotebookLM」?这篇告诉你原因
最好用的AI专案管理工具居然是Google的「NotebookLM」?这篇告诉你原因

GoogleNotebookLM作为AI项目管理工具,能整合碎片化灵感,构建专属资料中枢。基于封闭知识库精准回答,避免AI幻觉,可识别逻辑漏洞、评估排程并挖掘隐性关联,量身定制方案,大幅提升资料组织效率。

最强AI+最强笔记本?Google宣布Gemini整合NotebookLM AI回答更专业
最强AI+最强笔记本?Google宣布Gemini整合NotebookLM AI回答更专业

谷歌将NotebookLM整合至Gemini,企业及教育版用户可基于笔记文件获取专业回答。搭载Gemini三模型,大幅减少AI幻觉,支持生成文案与代码,联动Canvas制作图表,并提供资料补充与学习辅导,有效提升研究效率与学习体验,现已上线。

谷歌打通全链路 AI 生态,Gemini Notebook 深度联动 Gemini 主程序与搜索 AI 模式
谷歌打通全链路 AI 生态,Gemini Notebook 深度联动 Gemini 主程序与搜索 AI 模式

GeminiNotebook已打通Gemini主客户端与GoogleSearchAIMode,形成搜索、收藏、笔记、分析的闭环。用户可一键沉淀资料,通过深链接快速唤起内容,并支持团队权限分级协作。该产品正逐步成为谷歌AI生态中统一的知识管理节点。

科研与教育场景爆发,Gemini Notebook 成全球高校主流 AI 辅助研究工具
科研与教育场景爆发,Gemini Notebook 成全球高校主流 AI 辅助研究工具

GeminiNotebook(原NotebookLM)已覆盖北美和欧洲超千所高校,凭借私有素材推理与多模态能力,在文献整理、语音概览及代码分析中提升效率约40%,降低专业领域信息错误风险,适配课堂与企业场景,市场持续领跑。

谷歌正式发布 Gemini Notebook V1.47.6:NotebookLM 全面更名,代码执行能力下放至 Pro 订阅用户
谷歌正式发布 Gemini Notebook V1.47.6:NotebookLM 全面更名,代码执行能力下放至 Pro 订阅用户

谷歌正式发布GeminiNotebookV1.47.6,原NotebookLM更名并入Gemini生态;云端代码执行能力下放至Pro订阅用户,支持Python数据分析等脚本操作;全球用户超3000万,覆盖60万企业及科研机构。

查看更多
精品专题 更多
装机必备
装机必备

正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

Windows
Windows

正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

PDF教程
PDF教程

正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

Mac软件 更多
IntelliJ IDEA macOS版
IntelliJ IDEA macOS版
Mac

IntelliJ IDEA 是 JetBrains 推出的专业集成开发环境,重点服务于 Java、Kotlin 与 JVM 项目开发。软件集成代码补全、静态检查、重构、调试、测试、版本控制及构建工具,并可借助插件扩展语言和框架支持。

PyCharm macOS版
PyCharm macOS版
Mac

JetBrains PyCharm 是面向 Python 开发者的集成开发环境,提供智能补全、代码检查、重构、调试、测试、版本控制及虚拟环境管理功能。Mac 版兼容 Intel 与 Apple 芯片,核心功能可免费使用。

WebStorm macOS版
WebStorm macOS版
Mac

JetBrains WebStorm 是面向 JavaScript、TypeScript 和现代 Web 技术的专业集成开发环境,可智能理解项目结构,提供代码补全、重构、错误检查、运行调试、测试及 Git 工具。

WINDOWS 更多
IntelliJ IDEA Windows版
IntelliJ IDEA Windows版
Windows

JetBrains IntelliJ IDEA 是以 Java、Kotlin 和 JVM 项目为核心的专业集成开发环境,提供智能补全、代码检查、安全重构、调试、测试、版本控制及构建工具集成。统一发行版的核心功能可免费用于商业和非商业项目,

PhpStorm Windows版
PhpStorm Windows版
Windows

PhpStorm 是 JetBrains 面向 PHP 与现代 Web 开发打造的专业集成开发环境,提供代码补全、静态检查、重构、调试、测试、数据库、版本控制及前端语言支持。Windows 用户可直接下载安装程序,

PyCharm Windows版
PyCharm Windows版
Windows

PyCharm 是 JetBrains 推出的 Python 集成开发环境,提供智能代码补全、错误检查、重构、调试、测试、Git、终端及 Jupyter Notebook 支持。统一版安装后可体验 30 天 Pro 功能,