Jupyter notebook は快適だけれども、昔のノートブックを見るためにサーバーをわざわざ起動させるのが気分的に面倒ということがある。同僚と情報を共有するのに HTML のほうが良いということもあるかもしれない。そういう時のために、自動的に HTML ファイルと py ファイルを保存するようにしておくと便利。
まず、(なければ)設定ファイルを作る。
% jupyter notebook --generate-config
作られた ~/.jupyter/jupyter_notebook_config.py
を開いて
#-----------------------------
# Configurable configuration
#-----------------------------
の下にでも
import os
from subprocess import check_call
def post_save(model, os_path, contents_manager):
"""post-save hook for converting notebooks to .py scripts"""
if model['type'] != 'notebook':
return # only do this for notebooks
d, fname = os.path.split(os_path)
check_call(['jupyter', 'nbconvert', '--to', 'script', fname], cwd=d)
check_call(['jupyter', 'nbconvert', '--to', 'html', fname], cwd=d)
c.FileContentsManager.post_save_hook = post_save
これで、ipynb が作られると同時に同名の html と py (あるいは r など)が作られる。
参考
Jupyter Notebook for Data Science Teams (O'Reilly)
ipython nbconvert
は古いという警告がでるので、参考元のコードの ipython を jupyter に変更しました。