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 に変更しました。

广告
将在 10 秒后关闭
bannerAds