从另一个笔记本运行 Jupyter 笔记本

问题描述 投票:0回答:2

我想知道是否可以从另一个 *.ipynb 文件运行 *.ipynb 文件并获取返回值。 我知道我们可以这样跑:

%run ./called_notebook.ipynb

被调用的笔记本包含:

def foo():
    print(1)
    return 2
foo()

但它只打印“1”,而没有给我处理返回值的机会。有可能吗?是否存在以下类型的代码:

a = %run ./called_notebook.ipynb

谢谢!

python return jupyter-notebook
2个回答
71
投票

我建议从新笔记本运行

foo
功能。换句话说:

%run ./called_notebook.ipynb
foo()

在我看来,这是使用

%run
魔法命令的最佳实践。将您的高级 API 存储在单独的笔记本中(例如
foo
),但让您的函数调用在主笔记本中可见。


0
投票

马特的答案有效。但是,我想从 Calling_notebook.ipynb 运行另一个 Called_Notebook.ipynb,并将数据帧从 Called_Notebook 传输到 Calling_Notebook,而不显示任何输出。

我尝试了很多选项都不起作用(标签等)。然而,下面的方法有效(抑制了 Called_notebook.ipynb 中的所有输出)。

    %%capture        # to supress output of the cell
    %run -n ./called_notebook.ipynb  
    df = DFF()       # function in called_notebook that returns a dataframe after doing all work
    df.info()  
© www.soinside.com 2019 - 2024. All rights reserved.