Ajouter des sauts de ligne dans ipython
Si introduire une boucle for dans iPython, ou tout multi-ligne de commande, comment puis-je revenir en arrière et ajouter des lignes à elle? J'ai couru ce:
for row in table.find_all('tr'):
cells = row.find_all('td')
for c,cell in enumerate(cells):
print c,":",cell.get_text().strip()
try:
this = cells[0]
that = cells[1]
the_docket = cells[2]
other_thign = cells[3]
jumble = re.sub('\s+',' ',str(cells[5])).strip()
except:
"Nope"
Et réalisé que j'ai besoin d'ajouter une ligne, mais je ne peux pas juste appuyez sur "entrée" dans iPython, b/c qui exécute la commande. Donc, je peux modifier que le multi en ligne de commande w/dans iPython?
- Si vous jouez à la maison, il s'avère que la vraie solution est gedit + ipython auditeur. De modifier et d'exécuter, au lieu d'essayer de composer des boucles dans le terminal.
Vous devez vous connecter pour publier un commentaire.
La
%edit
fonction magique dans iPython vous permet de modifier le code dans votre éditeur de texte favori et ensuite l'exécuter comme s'il était saisi directement. Vous pouvez également modifier le code que vous avez déjà tapé dans le repl car il est stocké dans une variable spéciale, par exemple:%edit _2
serait ré-ouvrir la session d'édition dans l'exemple ci-dessus et%edit -p
s'ouvre toujours votre dernière session d'édition.%edit foo
va modifier lafoo()
fonction.%edit
ouvert ma moins éditeur de texte favori! Comment puis-je demander un autre?EDITOR
, qui est utilisé par de nombreux utilitaires de ligne de commande en cas de besoin de l'ouverture d'un éditeur. Par exemple, si vous exécutezEDITOR=vim ipython
- vim va être utilisé. Vous pouvez définir une valeur différente dans votre bashrc/zshrc/etc. fichier de sorte qu'il sera toujours utilisé.Il est aussi un moyen pour ajouter un saut de ligne directement dans le repl: ctrl-v ctrl-j
Le ctrl-v, fondamentalement vous permet d'envoyer un code de contrôle, puis ctrl-j est le code pour un retour à la ligne, saut de ligne). C'est un peu maladroit de type, mais a l'avantage de travailler dans l'ordinaire de Python shell ainsi que dans Bash.
Edit: Au moins dans iTerm2, vous pouvez l'affecter à un simple raccourci clavier ainsi. J'ai mis ctrl-enter pour "Envoyer des codes hex" de 0x16 0x0a. Pourrait également utiliser cmd-enter ou tout autre chose.
Souffre de ce problème depuis un moment. J'ai juste constaté que lors de l'utilisation de Ctrl-qCtrl-j (C'est minuscule Q, J, pas besoin de tenir à l' maj clé) permettra d'ajouter un saut de ligne à un IPython session d'édition.
Déplaçant le curseur après le côlon et en appuyant sur Ctrl-qCtrl-j
IPython: 5.2.1, iTerm2: 3.0.15, macOS: 10.12.6
ctrl-v
n'a pas fonctionné pour moi, maisctrl-q
permettez-moi de mettre dans le saut de ligneCtrl
et appuyez surq
puisj
.Vous pouvez utiliser
ctrl+on
(c'est à dire appuyer sur le bouton de commande et saisissez les caractères 'o', 'n', tout en le maintenant). Vous pouvez aussi le faire en deux étapes -ctrl+o
ctrl+n
mais je trouve l'ancienne plus facile.ctrl-o
- entrer dans le mode multi-lignesctrl-n
- accéder à l'historique des commandes d'aller de l'avant.Mais puisqu'il n'est pas de l'histoire, le curseur se déplace vers la ligne suivante.
J'ai vérifié qu'il fonctionne à la fois avec IPython 5.3.0 et IPython 7.3.0 sur un ordinateur qui exécute git bash 2.18.0 + windows 7.
Pour l'exhaustivité: les nouveaux IPython versions (de 0,11+) ont une très belle interface graphique de la console qui vous permet de naviguer dans votre code avec les flèches et même repositionner le curseur avec la souris.
En multi-instructions de ligne de, certaines touches de prendre sur une fonction spéciale (à l'aide des flèches, Entrée pour insérer un saut de ligne et autres). Vous aurez pour positionner le curseur à la fin de la dernière ligne de la déclaration afin d'obtenir le comportement par défaut, par exemple, obtenir la flèche vers le Haut ↑ pour dire "déclaration" au lieu de "déplacer le curseur à la ligne précédente". Ou get Entrée pour dire "exécuter un code" au lieu de "insérer un saut de ligne dans le milieu de code".
La documentation sur c'est un peu dispersée et fragmentée en plusieurs pages, voici donc l'essentiel trois liens pour commencer avec elle:
La configuration de IPython en utilisant nice profil à l'utilisateur des fichiers plutôt que des arguments de ligne de commande
Vous êtes intéressé dans le
ipython_qtconsole_config.py
Comment obtenir un ipython console graphique sur Windows 7?
Un moyen facile de le faire est d'utiliser le
;\
de l'opérateur.;
pour signaler que c'est la fin d'une commande et\
pour indiquer la commande suivante sur une nouvelle ligne comme suit:Ce qui vous permettra d'avoir plusieurs commandes de ligne dans ipython sans faire appel à l'éditeur de
Type
Ctrl+q
puisEnter
. Comme d'autres l'a souligné,Ctrl+q
vous permet d'envoyer un code de caractère, mais de frapperCtrl+q
puisEnter
peut-être plus naturel queCtrl+q
puisCtrl+j
.Une autre option est de type
(
puisEnter
, écrire et supprimer les(
par la suite. Cette solution est similaire à celle dans laquelle vous tapez;\
- à-dire l'instruction n'est pas terminée.Ctrl+q Enter
raccourci ne fonctionne pas avec IPython 7.3.0, mais fonctionne avec IPython 5.3.0. Je suis à l'aide de git bash 2.18.0 + Windows 7. Une alternative est d'utiliserCtrl+on
qui fonctionne bien dans les deux IPython versions.