ほんじゃらねっと

ダイエット中プログラマのブログ

iPythonでコマンド履歴ログ出力を自動化する

たまにはPythonを使っておこう、

ということでここ数日シェル環境としてiPythonを使っている。

Jupyter and the future of IPython — IPython

ほぼPython言語としての機能は使っていないのだけど、

ちょっとした計算をしたりするにはなかなか便利だ。

せっかく書いた処理を使い捨てにするのはもったいないので、

入力履歴をファイルに自動ログしてくれるスタートアップスクリプトを作成した。

ネタ元は下記のstackoverflowの回答から:

stackoverflow.com

iPythonは下記のスタートアップフォルダに

pythonファイルを作成しておくと起動時に実行してくれる:

~/.ipython/profile_default/startup

そこに上のstackoverflow回答に書いてあるとおり、

下記のようなスクリプトを保存しておくと

指定したフォルダにiPython起動時の日時をファイル名としてログを出力してくれる。

01-log-everything.py

from time import strftime
import os.path

ip = get_ipython()

ldir = <ログ保存先フォルダ>
fname = strftime('%Y-%m-%d-%H-%M-%S') + ".py"
filename = os.path.join(ldir, fname)

ip.run_line_magic('logstart', '-o %s append' % filename)

便利。

IPythonデータサイエンスクックブック ―対話型コンピューティングと可視化のためのレシピ集

IPythonデータサイエンスクックブック ―対話型コンピューティングと可視化のためのレシピ集