ipython: Vollständigen Verlauf drucken (nicht nur aktuelle Sitzung)

128

In ipythonkann ich den aktuellen Verlauf verwenden %histoder %historydrucken, dies druckt jedoch nur den Verlauf der aktuellen Sitzung.

Ich möchte den gesamten Verlauf drucken, ähnlich wie es der historyBefehl bash tut.

Ich versuche, einen vollständigen Verlauf abzurufen, damit ich dann mit Regex suchen, sehen kann, welche Befehle nach den angegebenen Befehlen folgen, und so weiter

Apropos Geschichte, kann es auch Timecodes drucken?

SEITLICHER HINWEIS : In Bash habe ich ein einfaches Skript geschrieben, das den Verlauf druckt, und ich kann es nach Schlüsselwörtern durchsuchen. Ich sehe Zeiten, in denen bestimmte Befehle ausgeführt wurden. Ich kann angeben -A noder -B n, wo nist eine Anzahl von Zeilen AFTERoder BEFOREein gegebener Befehl. Das ist sehr praktisch, weil ich leicht herausfinden kann, was ich wann getan habe und was gefolgt ist, ...

Ich suche etwas Ähnliches für ipython

user1968963
quelle
8
IPython speichert seinen Verlauf in einer history.sqlite-Datei in ~/.ipython/profile_default/. Dort finden Sie die Tabellen: sessions(mit Zeitstempeln) historyund output_history.
user3557327
1
@ user3557327 - wie kann ich von innen darauf zugreifen ipython?
user1968963
1
Ich weiß nicht, ob ipython eine Schnittstelle dazu zeigt, aber Sie können jederzeit direkt mit dem sqlite3-Modul darauf zugreifen .
user3557327
42
%history -gwird Ihnen alles zeigen. -gDurchsucht den Verlauf und wenn Sie ihm kein Muster geben, erhalten Sie alles.
Thomas K
36
%history -g -f filenameum es in einer Datei zu speichern.
Liso

Antworten:

162

In ipythoneingeben:

%history -g

Es werden keine Zeitcodes gedruckt, aber die Sitzungs- / Zeilennummer.

Ochse.
quelle
25

Verwenden Sie %hist -o -g -f ipython_history.mddiese Option zuerst, um den Verlauf (Eingabe und Ausgabe) in eine Textdatei auszugeben. ( http://ipython.readthedocs.io/en/stable/interactive/magics.html#magic-history )

Anschließend können Sie die get_session_infoFunktion verwenden, um Datum und Uhrzeit für die Sitzung abzurufen, an der Sie interessiert sind. ( 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)

Dies wird so etwas wie ausdrucken

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

Dies bedeutet, dass die Sitzung 100 am 13. Februar 2018 um 19:08:30 Uhr begann.

alpha_989
quelle
0

Hier ist die Firefox-Erweiterung, die @larssend gefunden hat: SQLite Manager

Es verfügt über eine grafische Benutzeroberfläche zum Öffnen einer Datenbankdatei und zum Ausgeben verschiedener SQLite-Befehle über ein Menü. Sie erhalten den zusätzlichen Bonus, die SQL-Befehle zu sehen, die die Ausgabe generiert haben. Hier ist meins für mein ipython %historyin ~/.ipython/profile_default/history.sqlite:

Geben Sie hier die Bildbeschreibung ein

Und es gibt sogar ein Menü zum Generieren von Plots (Streuung, Linie, Balken usw.) aus Ihren Daten!

Kochfelder
quelle