我想让一个 IPython 笔记本运行以进行一些计算 + 显示一些视觉效果。
IPython notebook 完成后,我希望 IPython notebook 中的最后一个单元格以编程方式保存 IPython notebook。然后我想将笔记本(带有所有输出)复制到另一个目录以记录结果。
我可以轻松编码的复制位,但我不确定如何让 IPython 笔记本以编程方式保存自己?这可能吗?提前致谢!
我想让一个 IPython 笔记本运行以进行一些计算 + 显示一些视觉效果。
IPython notebook 完成后,我希望 IPython notebook 中的最后一个单元格以编程方式保存 IPython notebook。然后我想将笔记本(带有所有输出)复制到另一个目录以记录结果。
我可以轻松编码的复制位,但我不确定如何让 IPython 笔记本以编程方式保存自己?这可能吗?提前致谢!
我正在接受@Taar 的评论并将其作为实际答案,因为它适用于提出问题的原始人和我自己。
from IPython.display import display, Javascript
display(Javascript('IPython.notebook.save_checkpoint();'))
这将创建检查点 - 与CTRL-s
.
注意:在 Jupyter 中,CTRL-s 触发异步进程,文件保存实际上仅在几秒钟后完成。如果要在笔记本中进行阻塞保存操作,请使用这个小功能(file_path
是笔记本文件的路径):
import time
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()
ipython 魔术命令%notebook
将在这里为您提供帮助。它显示在此页面上(搜索 %notebook)。
要将您当前的笔记本历史记录保存到文件“foo.ipynb”中,只需输入:
%notebook -e foo.ipynb
在你希望它发生的时候