app*_*der 8 python ipython ipython-notebook ipython-magic jupyter
我想让IPython笔记本运行以进行一些计算并显示一些视觉效果。
IPython Notebook完成后,我希望IPython Notebook中的最后一个单元以编程方式保存IPython Notebook。然后,我想将笔记本(包含所有输出)复制到另一个目录中,以记录结果。
我可以轻松地编写复制位,但是我不确定如何获得IPython笔记本以编程方式保存自身?这可能吗?提前致谢!
ipython 魔法命令%notebook
将在这里为您提供帮助。它显示在此页面上(搜索 %notebook)。
要将当前笔记本历史记录保存到文件“foo.ipynb”,只需输入:
%notebook -e foo.ipynb
Run Code Online (Sandbox Code Playgroud)
当你希望它发生的时候
我接受@Taar的评论,并使其成为实际答案,因为它适用于提出问题的原始人和我自己。
from IPython.display import display, Javascript
display(Javascript('IPython.notebook.save_checkpoint();'))
Run Code Online (Sandbox Code Playgroud)
这将创建检查点-与相同CTRL-s
。
注意:在Jupiter中,CTRL-s触发异步过程,并且文件保存实际上仅在几秒钟后完成。如果要在笔记本中执行阻止保存操作,请使用以下小功能(file_path
是笔记本文件的路径):
from time import sleep
from IPython.display import display, Javascript
import hashlib
def save_notebook(file_path):
start_md5 = hashlib.md5(open(file_path,'rb').read()).hexdigest()
display(Javascript('IPython.notebook.save_checkpoint();'))
current_md5 = start_md5
while start_md5 == current_md5:
time.sleep(1)
current_md5 = hashlib.md5(open(file_path,'rb').read()).hexdigest()
Run Code Online (Sandbox Code Playgroud)