You need to enable JavaScript to run this app. 如何从Jupyter Notebook A运行Notebook B并保存其输出结果?
优惠活动
大模型
产品
解决方案
定价
更多

如何从Jupyter Notebook A运行Notebook B并保存其输出结果?

实现方案:从Notebook A运行Notebook B并传递变量、自动保存

方案一:参数化运行工具papermill(推荐,完全符合需求)

无需修改Notebook B的业务逻辑,也不需要额外加保存函数,自带运行完成自动保存能力:

  • 先安装依赖:pip install papermill
  • 给Notebook B添加参数接收单元格:打开B,新建一个单元格放在最开头,给该单元格打上parameters标签(Jupyter Lab在右侧属性面板的「单元格标签」处添加,Jupyter Notebook经典界面在「视图 → 单元格工具栏 → 标签」开启后添加),单元格内仅需要定义参数的默认值即可,示例:
# 本单元格已打parameters标签
user_id = "default"
data_df = None
start_time = "2024-01-01"
  • 在Notebook A中执行以下代码,即可将A中的变量传递给B、按顺序完整运行B、自动保存运行后的B文件:
import papermill as pm

pm.execute_notebook(
    input_path="./notebook_b.ipynb", # 你的B文件路径
    output_path="./notebook_b.ipynb", # 运行后保存的路径,可自定义,不想覆盖原文件可改名为其他
    parameters={
        "user_id": current_user_id, # current_user_id是A中已定义的变量
        "data_df": a_calculated_df, # A中计算好的DataFrame也可直接传递
        "start_time": query_start
    }
)

方案二:内置%run魔术命令(无额外依赖)

不需要安装第三方包,适合轻量场景:

  • 直接在Notebook A的单元格中运行:%run ./notebook_b.ipynb
  • 运行后A内核中的所有变量会自动共享给B,B会按原有顺序自上而下全部运行
  • 注意:该方法默认不会自动保存B的运行结果到本地ipynb文件,若需要自动保存,仅需在B的最后一个单元格添加以下代码即可:
from IPython.display import Javascript
import time
# 等待所有输出渲染完成后自动保存
time.sleep(3)
display(Javascript('IPython.notebook.save_checkpoint();'))

HTML导出说明

你当前使用的jupyter nbconvert notebook_b.ipynb --no-input --no-prompt --to html命令可以直接复用,等B运行保存完成后执行即可得到无代码、无输入提示的纯分析结果HTML文件,适合非技术人员查看。

内容的提问来源于stack exchange,提问作者Adler Müller

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 17:30:03