【发布时间】:2018-05-14 01:12:41
【问题描述】:
Jupyter Notebook 单元是否可以以编程方式执行另一个单元? (即使用 Python)
如果可以,是否可以指定要执行的单元格编号?
【问题讨论】:
标签: python-3.x jupyter-notebook
Jupyter Notebook 单元是否可以以编程方式执行另一个单元? (即使用 Python)
如果可以,是否可以指定要执行的单元格编号?
【问题讨论】:
标签: python-3.x jupyter-notebook
有一个名为 execute_cells (see it on Github) 的 javascript 函数,当给定单元格索引列表时,它会运行这些单元格。
%%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])")
请注意,这会将光标移动到已执行的单元格。如果您想回到光标位置,您可以获取下一个单元格的编号以便执行它(代码改编自this answer):
%%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
【讨论】:
%%javascript cell 魔术命令将单元格作为 javascript 运行。我更新了我的答案以反映这一点。
cell_idx ?