Python Tips: インタラクティブシェルの内容を保存したい

Python でインタラクティブシェルの内容を保存する方法をご紹介します。

引数をつけずに python コマンドを実行すると起動するデフォルトのインタラクティブシェルにはそのような機能がないため、 IPython を使うのがよいでしょう。 IPython にはシェルの内容を保存する機能が備わっています。

$ ipython
In [1]: a = 2
In [2]: b = 3
In [3]: c = a + b
In [4]: %save saved_session.py 1-3
The following commands were written to file `saved_session.py`:
a = 2
b = 3
c = a + b

IPython のシェルの中で %save にふたつの引数を渡します。ひとつめは保存先のファイルの名前、ふたつめには対象行を指定します。対象行は - で範囲を決めて指定したり空白で区切って複数個与えたりすることができます。ですので、上記の %save の行は次のように書いても同じ結果となります。

In [4]: %save saved_session.py 1 2 3

ipython は Python のパッケージ(ライブラリ)なので pip などでインストールすることができます。 ipython が入っていない場合は以下のコマンドでインストールしてみてください。

$ pip install ipython

以上です。