Ligne de commande Python: erreur d’édition sur la ligne précédente?

Lorsque vous utilisez python via la ligne de commande, si je constate une erreur sur une ligne précédente d’une déclaration nestede, existe-t-il un moyen de supprimer ou de modifier cette ligne une fois qu’elle a déjà été saisie?

par exemple:

>>> file = open("file1", "w") >>> for line in file: ... parts = line.split('|') <-- example, I meant to type '\' instead ... print parts[0:1] ... print ";" ... print parts[1:] 

Donc, plutôt que de tout retaper pour réparer un caractère, puis-je revenir en arrière et modifier quelque chose avec le recul? Je sais que je pourrais juste le coder dans vim ou quelque chose et avoir une copie persistante, je peux faire tout ce que je veux, mais j’espérais un truc pratique avec la ligne de commande.

— Merci!

Vous ne pouvez pas faire une telle chose dans l’interpréteur python d’origine, cependant, si vous utilisez la dernière version d’ IPython , il fournit une interface graphique légère (qui ressemble à un simple shell, mais est une interface graphique en fait) qui propose une édition multi-ligne , la coloration syntaxique et un tas d’autres choses. Pour utiliser l’interface graphique IPython , exécutez-la avec la commande ipython qtconsole .

Pas que je sache depuis toutes ces années, j’ai codé Python. C’est à quoi servent les éditeurs de texte =)

Si vous êtes un utilisateur d’Emacs, vous pouvez configurer votre environnement de telle sorte que la fenêtre soit divisée en tampon de code et en tampon Python, puis exécutez l’intégralité de votre mémoire tampon pour voir les modifications.

Peut être. Le tutoriel Python dit:

La vérification la plus rapide de la prise en charge de l’édition en ligne de commande consiste peut-être à taper Control-P sur la première invite Python que vous recevez. S’il émet un bip, vous avez la possibilité de modifier la ligne de commande. voir Annexe Modification interactive des entrées et historique pour une introduction aux touches. Si rien ne semble se produire ou si ^ P est répercuté, la ligne de commande n’est pas disponible. vous ne pourrez utiliser que le retour arrière pour supprimer des caractères de la ligne en cours.

En plus de la suggestion de @ MatToufoutu, vous pouvez également regarder DreamPie , bien qu’il ne s’agisse que d’une interface graphique pour le shell sans les autres extensions d’IPython.

Maintenant, au lieu d’utiliser ipython

 jupyter console 

dans l’invite de commande