ipython:完全な履歴を出力します(現在のセッションだけではありません)


128

ではipython%histまたは%historyを使用して最近の履歴を印刷できますが、これは現在のセッションの履歴のみを印刷します。

bash historyコマンドと同様に、すべての履歴を印刷したいと思います。

私がやろうとしているのは、完全な履歴を取得することです。これにより、正規表現で検索したり、指定したコマンドの後に続くコマンドを確認したりできます。

歴史と言えば、タイムコードも出力できますか?

サイドノート:bashでは、履歴を出力する簡単なスクリプトを記述しており、キーワードで検索できます。特定のコマンドが実行された時刻を確認しました。-A nまたはを指定できます-B nnは、行数AFTERまたはBEFORE特定のコマンドです。これは非常に便利です。いつ何をしたか、何をしたかが簡単にわかるからです...

似たようなものを探しています ipython


8
IPythonはその履歴をのhistory.sqliteファイルに保存し~/.ipython/profile_default/ます。そこにテーブルがあります:(sessionsタイムスタンプ付き)、historyそしてoutput_history
user3557327 14

1
@ user3557327-どうすれば内部からアクセスできますipythonか?
user1968963 2014

1
ipythonがそのインターフェースを表示するかどうかはわかりませんが、sqlite3モジュールを使用していつでも直接アクセスできます
user3557327 14

42
%history -gそれをすべて表示します。-g履歴を検索し、パターンを指定しない場合は、すべてを取得します。
トーマスK

36
%history -g -f filenameファイルに保存します。
Liso、2015

回答:


163

ipython入力します:

%history -g

タイムコードは出力しませんが、セッション/行番号は出力します。


26

最初に%hist -o -g -f ipython_history.md、履歴(入力と出力)をテキストファイルに出力するために使用します。(http://ipython.readthedocs.io/en/stable/interactive/magics.html#magic-history

次に、get_session_info関数を使用して、関心のあるセッションの日時を取得できます。(http://ipython.readthedocs.io/en/stable/api/generated/IPython.core.history.html?highlight= hist#IPython.core.history.HistoryAccessor.get_session_info

profile_hist=IPython.core.history.HistoryAccessor(profile='default')
profile_hist.get_session_info(100)

これは次のようなものを出力します

(100, datetime.datetime(2018, 2, 13, 19, 8, 30, 40691), None, None, '')

これは、セッション100が2018年2月13日19:08:30に開始されたことを意味します。


0

@larssendが見つけたFirefox拡張機能は次のとおりです:SQLite Manager

データベースファイルを開き、メニューからさまざまなsqliteコマンドを発行するためのGUIがあります。出力を生成したSQLコマンドを確認できるというボーナスが追加されます。これが私のipythonの私のもの%historyです~/.ipython/profile_default/history.sqlite

ここに画像の説明を入力してください

また、データからプロット(散布図、線、棒など)を生成するためのメニューもあります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.