ipython: affiche l'historique complet (pas seulement la session en cours)

128

dans ipython, je peux utiliser %histou %historyimprimer l'historique récent, mais cela n'imprime que l'historique de la session en cours.

Je voudrais imprimer toute l'histoire, comme le historyfait la commande bash .

Ce que j'essaie de faire, c'est d'obtenir un historique complet, de sorte que je puisse ensuite rechercher avec regex, voir quelles commandes ont suivi après des commandes spécifiées, etc.

En parlant d'histoire, peut-il également imprimer des timecodes?

NOTE DE CÔTÉ : Dans bash, j'ai écrit un script simple qui imprime l'historique et je peux le grep pour les mots-clés. Je vois des moments où certaines commandes ont été exécutées. Je peux spécifier -A nou -B n, où nest un nombre de lignes AFTERou BEFOREune commande donnée. C'est très pratique, car je peux facilement trouver ce que j'ai fait quand, et ce qui a suivi, ...

Je recherche quelque chose de similaire pour ipython

user1968963
la source
8
IPython enregistre son historique dans un fichier history.sqlite au format ~/.ipython/profile_default/. Vous y trouverez les tableaux: sessions(avec horodatage) historyet output_history.
user3557327
1
@ user3557327 - comment puis-je y accéder de l'intérieur ipython?
user1968963
1
Je ne sais pas si ipython lui montre une interface, mais vous pouvez toujours y accéder directement avec le module sqlite3 .
user3557327
42
%history -gvous montrera tout cela. -grecherche l'historique, et si vous ne lui donnez aucun modèle, vous obtenez tout.
Thomas K
36
%history -g -f filenamepour l'enregistrer dans un fichier.
Liso

Réponses:

163

En ipythonentrée:

%history -g

Il n'imprime pas les codes temporels mais il imprime le numéro de session / ligne.

bœuf.
la source
26

Première utilisation %hist -o -g -f ipython_history.mdpour sortir l'historique (entrée et sortie) dans un fichier texte. ( http://ipython.readthedocs.io/en/stable/interactive/magics.html#magic-history )

Ensuite, vous pouvez utiliser la get_session_infofonction the pour récupérer la date et l'heure de la session qui vous intéresse. ( 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)

Cela imprimera quelque chose comme

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

Cela signifie que la session 100 a commencé le 13 février 2018 à 19:08:30.

alpha_989
la source
0

Voici l'extension Firefox que @larssend a trouvée: SQLite Manager

Il a une interface graphique pour ouvrir un fichier de base de données et émettre diverses commandes sqlite à partir d'un menu. Vous obtenez l'avantage supplémentaire de voir les commandes SQL qui ont généré la sortie. Voici le mien pour mon ipython %historydans ~/.ipython/profile_default/history.sqlite:

entrez la description de l'image ici

Et il a même un menu pour générer des graphiques (scatter, line, bar, etc.) à partir de vos données!

plaques de cuisson
la source