ipython: stampa la cronologia completa (non solo la sessione corrente)


128

in ipython, posso usare %histo %historystampare la cronologia recente, ma questo stampa solo la cronologia della sessione corrente.

Vorrei stampare tutta la cronologia, come historyfa il comando bash .

Quello che sto cercando di fare è ottenere la cronologia completa, in modo da poter quindi cercare con regex, vedere quali comandi sono stati seguiti dopo i comandi specificati e così via

A proposito di storia, può anche stampare timecode?

NOTA LATERALE : In bash, ho scritto una semplice sceneggiatura che stampa la storia e posso cercarla per parole chiave. Vedo i tempi in cui alcuni comandi sono stati eseguiti. Posso specificare -A no -B n, dov'è nun numero di righe AFTERo BEFOREun dato comando. Questo è molto utile, perché posso facilmente trovare quello che ho fatto quando, e ciò che è seguito, ...

Sto cercando qualcosa di simile per ipython


8
IPython salva la sua cronologia in un file history.sqlite in ~/.ipython/profile_default/. Lì troverai le tabelle: sessions(con timestamp) historye output_history.
user3557327

1
@ user3557327 - come posso accedervi dall'interno ipython?
user1968963

1
Non so se ipython mostra un'interfaccia, ma puoi sempre accedervi direttamente con il modulo sqlite3 .
user3557327

42
%history -gti mostrerò tutto. -gcerca nella cronologia e se non gli dai alcun motivo, ottieni tutto.
Thomas K,

36
%history -g -f filenameper salvarlo su file.
Liso,

Risposte:


163

In ipythoninvio:

%history -g

Non stampa codici temporali ma stampa il numero di sessione / linea.


26

Primo utilizzo %hist -o -g -f ipython_history.mdper generare la cronologia (input e output) in un file di testo. ( http://ipython.readthedocs.io/en/stable/interactive/magics.html#magic-history )

Quindi puoi utilizzare la get_session_infofunzione per recuperare la data e l'ora della sessione che ti interessa. ( 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)

Questo stamperà qualcosa del genere

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

Ciò significa che la sessione 100 è iniziata il 13 febbraio 2018 alle 19:08:30.


0

Ecco l'estensione di Firefox che @larssend ha trovato: SQLite Manager

Ha una GUI per aprire un file di database ed emettere vari comandi sqlite da un menu. Ottieni il vantaggio aggiuntivo di vedere i comandi SQL che hanno generato l'output. Ecco il mio per il mio ipython %historyin ~/.ipython/profile_default/history.sqlite:

inserisci qui la descrizione dell'immagine

E ha anche un menu per generare grafici (dispersione, linea, barra, ecc.) Dai tuoi dati!

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.