我想知道是否可以从另一个 *.ipynb 文件运行 *.ipynb 文件并获取返回值。 我知道我们可以这样跑:
%run ./called_notebook.ipynb
被调用的笔记本包含:
def foo():
print(1)
return 2
foo()
但它只打印“1”,而没有给我处理返回值的机会。有可能吗?是否存在以下类型的代码:
a = %run ./called_notebook.ipynb
?
谢谢!
我建议从新笔记本运行
foo
功能。换句话说:
%run ./called_notebook.ipynb
foo()
在我看来,这是使用
%run
魔法命令的最佳实践。将您的高级 API 存储在单独的笔记本中(例如 foo
),但让您的函数调用在主笔记本中可见。
马特的答案有效。但是,我想从 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()