1. ホーム
  2. python

[解決済み] Pythonの対話型セッションを保存する方法は?

2022-03-21 10:21:12

質問

私はPythonのインタプリタを使ってデータベースやファイルなどを扱うことが多いのですが、基本的に半構造化データを手作業でフォーマットすることが多いです。 私は思うほど頻繁に有用な部分を適切に保存し、クリーンアップしているわけではありません。 シェルへの入力(データベース接続、変数の割り当て、ちょっとしたループやロジックの断片)、つまり対話型セッションの履歴を保存する方法はないでしょうか? もし私が以下のようなものを使うなら script stdoutのノイズが多すぎる。 すべてのオブジェクトをピクルスにする必要はないのですが、もしそのようなソリューションがあれば、それはそれで問題ないでしょう。 理想を言えば、対話的に作成したスクリプトをそのまま走らせ、不要な部分を削除できればいいのですが。 これを実現するパッケージや、DIYのアプローチはありますか?

解決方法は?

IPython は、対話型セッションを使用する場合に非常に便利です。例えば、あなたのユースケースには その %save マジックコマンド を入力するだけです。 %save my_useful_session 10-20 23 を入力すると、入力した10行目から20行目、23行目は my_useful_session.py (これを支援するために、すべての行にその番号を先頭につけています)。

さらに、ドキュメントにはこう書かれています。

と同じ構文を使用します。 %history を入力範囲とし、その行を指定したファイル名に保存します。

これにより、例えば、古いセッションを参照するために、以下のようなことが可能になります。

%save current_session ~0/
%save previous_session ~1/

見る プレゼンテーションページの動画 をご覧いただくと、機能の概要が一目瞭然です。