Je travaille sur l'interpréteur python par défaut sur Mac OS X, et j'ai Cmd+ K(effacé) mes commandes précédentes. Je peux les parcourir un par un en utilisant les touches fléchées. Mais y a-t-il une option comme l'option --history dans le shell bash, qui vous montre toutes les commandes que vous avez entrées jusqu'à présent?
150
history
commande shell est un programme comme les autres. Ce n'est pas une "option" dans labash
commande.history
est un shell intégré.%history
. Et l'-g
option obtient des sessions antérieures .Réponses:
Utilisez
readline.get_current_history_length()
pour obtenir la longueur etreadline.get_history_item()
pour afficher chacun d'eux.la source
Code pour imprimer l'historique complet:
Python 3
One-liner (copier-coller rapide):
(Ou version plus longue ...)
Python 2
One-liner (copier-coller rapide):
(Ou version plus longue ...)
Remarque :
get_history_item()
est indexé de 1 à n.la source
import readline; print '\n'.join([str(readline.get_history_item(i)) for i in range(readline.get_current_history_length())])
history()
fonction avec ce qui précède dans mon script de démarrage d'interpréteur Python (un script pointé par env. Var$PYTHONSTARTUP
). À partir de maintenant, je peux simplement taperhistory()
n'importe quelle session d'interprétation ;-)Avec l'interpréteur python 3, l'historique est écrit
~/.python_history
la source
cat ~/.python_history
quit()
l'interprète pour que l'historique de la session en cours soit inclus dans~/.python_history
Si vous souhaitez écrire l'historique dans un fichier:
La fonction d'aide donne:
la source
Comme ce qui précède ne fonctionne que pour python 2.x pour python 3.x (spécifiquement 3.5) est similaire mais avec une légère modification:
notez le supplément ()
(l'utilisation de scripts shell pour analyser .python_history ou l'utilisation de python pour modifier le code ci-dessus est une question de goût personnel et de situation à mon humble avis)
la source
C:\>python -m pip install readline
=>Collecting readline
\ nDownloading https://files.pythonhosted.org/packages/f4/01/2cf081af8d880b44939a5f1b446551a7f8d59eae414277fd0c303757ff1b/readline-6.2.4.1.tar.gz (2.3MB)
\ n|████████████████████████████████| 2.3MB 1.7MB/s
\ nERROR: Complete output from command python setup.py egg_info:
\ nERROR: error: this module is not meant to work on Windows
\ n----------------------------------------
\ n `ERREUR: La commande" python setup.py egg_info "a échoué avec le code d'erreur 1 dans C: \ Users \ dblack \ AppData \ Local \ Temp \ pip-install-s6m4zkdw \ readline`pip install readline
, maisreadline
est installé par défaut sur Windows.Dans IPython
%history -g
devrait vous donner l'historique complet des commandes. La configuration par défaut enregistre également votre historique dans un fichier nommé .python_history dans votre répertoire utilisateur.la source
Une fonction simple pour obtenir l'historique similaire à la version unix / bash.
J'espère que cela aidera de nouvelles personnes.
Extrait: testé avec Python3. Faites-moi savoir s'il y a des problèmes avec python2. Échantillons:
J'espère que cela aide les gars.
la source
cut -c 8
.)@ Jason-V, ça aide vraiment, merci. puis, j'ai trouvé ces exemples et composé pour posséder un extrait.
la source
Cela devrait vous donner les commandes imprimées sur des lignes séparées:
la source
Rehash de la réponse de Doogle qui n'imprime pas les numéros de ligne, mais permet de spécifier le nombre de lignes à imprimer.
la source