Jupyter Notebook 转 py 文件
在 Jupyter Notebook 中,你可以使用 nbconvert 工具快速将 .ipynb 文件转换为 .py 文件。以下是几种方法:
方法 1:使用命令行
如果你已经安装了 nbconvert,可以在终端(或 Jupyter Notebook 的 ! 运行 Shell 命令)执行:
jupyter nbconvert --to script my_notebook.ipynb
这将会生成一个 my_notebook.py 文件。
如果你不希望生成 # In[1]: 这样的代码块编号,可以手动编辑或使用以下方法:
jupyter nbconvert --to script my_notebook.ipynb --output my_script
方法 2:在 Jupyter Notebook 里使用 Python 代码
如果你在 Jupyter Notebook 里想直接运行 Python 代码转换,可以执行:
import nbformat
from nbconvert import PythonExporter
# 读取 notebook 文件
notebook_filename = "my_notebook.ipynb"
with open(notebook_filename, "r", encoding="utf-8") as f:
    notebook_content = nbformat.read(f, as_version=4)
# 转换为 Python 代码
exporter = PythonExporter()
script, _ = exporter.from_notebook_node(notebook_content)
# 保存为 .py 文件
with open("my_script.py", "w", encoding="utf-8") as f:
    f.write(script)
方法 3:自动去除 # In[1]: 标注
默认转换后会包含 # In[1]: 这样的注释,如果你想去掉这些,可以使用:
jupyter nbconvert --to script my_notebook.ipynb && sed -i '/^# In\[/d' my_notebook.py
(Windows 用户可以使用 powershell 或 notepad++ 进行批量删除)
方法 4:使用 nbconvert 并自动删除 Markdown
如果你不想让 Notebook 里的 Markdown 变成 Python 注释,可以改进转换:
from nbconvert import PythonExporter
import nbformat
def notebook_to_script(input_file, output_file="output.py"):
    with open(input_file, "r", encoding="utf-8") as f:
        notebook_content = nbformat.read(f, as_version=4)
    exporter = PythonExporter()
    script, _ = exporter.from_notebook_node(notebook_content)
    # 删除 Markdown 注释
    script = "\n".join([line for line in script.split("\n") if not line.strip().startswith("#")])
    with open(output_file, "w", encoding="utf-8") as f:
        f.write(script)
# 调用转换函数
notebook_to_script("my_notebook.ipynb", "clean_script.py")
方法 5:用 papermill 直接运行 Notebook 并保存
如果你只想提取 Python 代码并运行:
pip install papermill
papermill my_notebook.ipynb output.ipynb -f params.yaml
jupyter nbconvert --to script output.ipynb
总结
 • 快速转换:jupyter nbconvert --to script my_notebook.ipynb
 • 在 Python 代码里转换:PythonExporter()
 • 去掉 # In[1]: 注释:sed 或 Python 处理
 • 去掉所有 Markdown 注释:手动处理 Python 代码
 • 自动运行并转换:使用 papermill
你可以根据需求选择适合的方法! 🚀
 
                     
                    
                 
                    
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号