如何以编程方式保存Jupyter笔记本(iPython笔记本)?

时间:2017-07-07 02:17:59

标签: ipython jupyter-notebook

我想通过代码块保存笔记本(例如点击工具栏中的&#34;磁盘&#34;图标)。原因:我希望通过nbconvert魔术使用%%bash来保存HTML和幻灯片版本,但这会转换磁盘上的内容,而不是正在运行的内容。<\ n / p>

我不想每次保存都这样做(为此我看到一些可以设置的配置),但只是选择性地用于我的一些笔记本。我希望能够“全部运行”#34;并让最后几个单元格创建反映屏幕上新鲜数据的附加文件。

我已经尝试了%save%notebook魔法,但我也没有找到(我能说的最好)。

有没有办法做到这一点?

3 个答案:

答案 0 :(得分:2)

一种hacky方法是使用%%javascript笔记本魔术来运行命令

require(["base/js/namespace"],function(Jupyter) {
    Jupyter.notebook.save_checkpoint();
});

这将访问全局笔记本实例(当在笔记本页面上这是当前笔记本时)并手动触发保存和检查点。

答案 1 :(得分:2)

以下是python函数形式的@ louise-davies答案的可重用版本;

from IPython.display import Javascript

script = '''
require(["base/js/namespace"],function(Jupyter) {
    Jupyter.notebook.save_checkpoint();
});
'''

def notebook_save():
    Javascript(script)
    print('This notebook has been saved')

答案 2 :(得分:0)

另一个选择是使用%% avascript和JQuery:

%%javascript
$("#save-notbook button").trigger('click');