jupyter notebookのipynbファイルをバッチ実行してhtmlを出力する
このエントリでは、
jupyterのipynbファイルをバッチ実行してhtmlを出力する手順を示します。
この手順をシェルスクリプト等で定期実行するようにしておけば、
日次や月次での定型レポートを生成するなどの応用が出来るので、便利だと思います。
適当なipynbを作る
jupyter notebookで適当にipynbを作成します。
ここでは以下のようなスクリプトを書いてみました。
# 東京・大阪支店の日別売上数的なイメージで
import pandas as pd
import numpy as np
%matplotlib inline
df = pd.DataFrame(
{
'tokyo': [10, 7, 15, 12, 11],
'osaka': [15, 3, 12, 7, 4]
},
index = ['20170101', '20170102', '20170103', '20170104', '20170105']
)
df.plot()
jupyter notebookから実行すると、以下のように結果が出力されます。
出力を確認出来たら、
Cell → All Output → Clearで結果をクリアし、
これを「src.ipynb」として保存しておきます。
runipyのインスト-ルする
ipynbをバッチ実行するために、runipyをインストールしておきます。
$ pip install runipy
ipynbを実行しhtmlに変換する
以下のコマンドで、ipynbの実行と出力結果のhtml変換を行います。
$ runipy src.ipynb out.ipynb
$ jupyter nbconvert out.ipynb --to html
「out.html」というhtmlファイルが出来ているので、
これをブラウザで開くと、出力結果を確認することが出来ます。
実際に運用するときは、
DataFrameはDBから取得するようにして、
実行時の現在時刻で取得する期間の範囲を選ぶようにすれば、
日次や月次での定型レポートを作ることが出来ると思います。
参考にした記事
IPython Notebookのノートをバッチ処理化する | Qiita http://qiita.com/hagino3000/items/c7781506db1dbc7ce57d
Jupyter nbconvert(ファイル変換)メモ | はしくれエンジニアもどきのメモ http://cartman0.hatenablog.com/entry/2016/03/29/131903