web-dev-qa-db-fra.com

Comment charger / modifier / exécuter / enregistrer des fichiers texte (.py) dans une cellule de cahier IPython?

Je suis récemment passé à utiliser les ordinateurs portables IPython dans le cadre de mon flux de travail. Cependant, je n'ai pas réussi à trouver un moyen d'importer des fichiers .py dans les cellules individuelles d'un bloc-notes IPython ouvert afin qu'ils puissent être modifiés, exécutés puis sauvegardés. Cela peut-il être fait?

J'ai trouvé this dans la documentation, qui indique comment importer des fichiers .py sous forme de nouveaux cahiers, mais cela ne correspond pas à l'objectif que je souhaite atteindre.

Toute suggestion serait très appréciée.

210
aaronsstack

EDIT: à partir de IPython 3 (maintenant le projet Jupyter), le bloc-notes est doté d'un éditeur de texte qui peut être utilisé comme alternative plus pratique pour charger/éditer/sauvegarder des fichiers texte.

Un fichier texte peut être chargé dans une cellule de bloc-notes avec la commande magique %load.

Si vous exécutez une cellule contenant:

%load filename.py

le contenu de filename.py sera chargé dans la cellule suivante. Vous pouvez l'éditer et l'exécuter comme d'habitude.

Pour enregistrer le contenu de la cellule dans un fichier, ajoutez Cell-magic %%writefile filename.py au début de la cellule et exécutez-le. Attention, si un fichier portant le même nom existe déjà , il sera automatiquement remplacé .

Pour voir l'aide pour toute commande magique, ajoutez un ?: comme %load? ou %%writefile?.

Pour obtenir une aide générale sur les fonctions magiques, tapez "% magic". Pour obtenir une liste des fonctions magiques disponibles, utilisez% lsmagic. Pour obtenir une description de l’un d’eux, tapez% magic_name?, Par exemple. '%CD?'.

Voir aussi: Fonctions magiques dans la documentation officielle IPython.

273
user2304916

Écrire/sauvegarder

%%writefile myfile.py

  • écrire/sauvegarder le contenu de la cellule dans myfile.py (utilisez -a pour l'ajouter). Un autre alias: %%file myfile.py

Courir

%run myfile.py

  • lancez myfile.py et affiche les résultats dans la cellule en cours

Charger/importer

%load myfile.py

  • charge "importer" monfichier.py dans la cellule en cours

Pour plus de magie et d'aide

%lsmagic

  • liste toutes les autres commandes magiques de cellules fraîches.

%COMMAND-NAME?

  • pour obtenir de l'aide sur l'utilisation d'une certaine commande. c'est-à-dire %run?

Remarque

Outre les commandes magiques de cellule, le cahier IPython (maintenant le cahier Jupyter) est tellement cool qu'il vous permet d'utiliser n'importe quelle commande unix directement à partir de la cellule (cela équivaut également à utiliser la commande magique %%bash cell.).

Pour exécuter une commande unix à partir de la cellule, faites précéder votre commande de la marque !. par exemple:

  • !python --version voyez votre version python
  • !python myfile.py lance myfile.py et génère les résultats dans la cellule actuelle, tout comme %run (voir la différence entre !python et %run dans les commentaires ci-dessous).

Voir aussi this nbviewer pour plus d'explications avec des exemples. J'espère que cela t'aides.

101
Aziz Alto

Glissez-déposez un fichier Python dans le tableau des carnets de notes "maison" des notebooks Ipython, cliquez sur télécharger. Cela créera un nouveau bloc-notes avec une seule cellule contenant le contenu de votre fichier .py.

Sinon copier/coller depuis votre éditeur préféré;)

7
Raphaël Braud

J'ai trouvé satisfaisant d'utiliser ls et cd dans ipython notebook pour trouver le fichier. Ensuite, tapez cat votre_nom_fichier dans la cellule et vous récupérerez le contenu du fichier, que vous pourrez ensuite coller dans la cellule en tant que code.

4
RussellStewart