如何在Jupyter笔记本中以编程方式创建几个新单元格

时间:2019-03-04 16:09:17

标签: python jupyter-notebook

我想以编程方式在Jupyter笔记本中创建多个单元格。

使用此功能,我可以创建一个单元格

def create_new_cell(contents):
    from IPython.core.getipython import get_ipython
    shell = get_ipython()
    shell.set_next_input(contents, replace=False)

但是,如果我尝试多次调用它,例如从for循环中调用它,例如

for x in ['a', 'b', 'c']:
    create_new_cell(x)

它将仅使用列表中的最后一项创建一个单元格。我试图找出是否有“冲洗”功能或类似功能,但没有成功。

有人知道如何以编程方式正确地编写多个单元格吗?

1 个答案:

答案 0 :(得分:1)

我在shell.payload_manager的代码中进行了更多研究,发现在set_next_input的当前实现中,它没有将single参数传递给{{1} }函数。这会阻止笔记本创建多个单元格,因为它们都具有相同的源(在这种情况下,shell.payload_manager.write_payload函数)。

话虽如此,以下功能有效。基本上是set_next_input函数将write_payload参数设置为single的代码。

False

希望这可以帮助某个人;)