一个Jupyter Notebook单元格能否通过编程方式执行另一个单元格?(即使用Python)
如果可以,是否可以指定要执行的单元格编号?
一个Jupyter Notebook单元格能否通过编程方式执行另一个单元格?(即使用Python)
如果可以,是否可以指定要执行的单元格编号?
有一个名为execute_cells
的JavaScript函数(在Github上查看),当给定一个单元格索引列表时,运行这些单元格。
%%javascript
Jupyter.notebook.execute_cells([0]) # 0 to run first cell in notebook etc.
如果需要在特定的 Python 代码单元格中运行它,可以使用 IPython.display
模块中的 Javascript
函数来执行 JavaScript。
from IPython.display import Javascript
Javascript("Jupyter.notebook.execute_cells([2])")
请注意,这将把光标移动到已执行的单元格。如果您希望返回光标位置,您可以获取下一个要执行的单元格的编号(代码改编自此答案):
%%javascript
Jupyter.notebook.execute_cells([0]) # 0 to run first cell in notebook etc.
var output_area = this;
// find my cell element
var cell_element = output_area.element.parents('.cell');
// which cell is it?
var cell_idx = Jupyter.notebook.get_cell_elements().index(cell_element);
Jupyter.notebook.execute_cells([cell_idx+1]) # execute next cell
我想为@Louise Davies的回答做出补充。如果您想要执行一系列单元格,请使用:
from IPython.display import Javascript
Javascript("Jupyter.notebook.execute_cell_range(10,20)")
%%javascript
单元格魔术命令将单元格运行为JavaScript。我已经更新了我的答案以反映这一点。 - Louise Daviescell_idx
? - rahul-ahuja