Je suis récemment passé à l'utilisation de blocs-notes 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 enregistrés. Cela peut-il être fait?
J'ai trouvé cela dans la documentation qui me dit comment importer des fichiers .py en tant que nouveaux blocs-notes, mais cela ne correspond pas à ce que je veux réaliser.
Toute suggestion serait très appréciée.
python
jupyter-notebook
ipython
jupyter
aaronsstack
la source
la source
Réponses:
Un fichier texte peut être chargé dans une cellule de bloc-notes avec la commande magique
%load
.Si vous exécutez une cellule contenant:
le contenu de
filename.py
sera chargé dans la cellule suivante. Vous pouvez le modifier et l'exécuter comme d'habitude.Pour sauvegarder le contenu de la cellule dans un fichier, ajoutez la cellule magique
%%writefile filename.py
au début de la cellule et exécutez-la. Attention, si un fichier du même nom existe déjà, il sera écrasé en silence .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 la liste des fonctions magiques disponibles, utilisez% lsmagic. Pour une description de l'un d'entre eux, tapez% magic_name?, Par exemple '% cd?'.
Voir aussi: Fonctions Magic des documents officiels IPython.
la source
%save -f
semble être la façon de faire ce que je cherchais. Merci!save -f
est une sorte de méthode indirecte d'enregistrement dans un fichier et ne fonctionnera que si vous exécutez d'abord la cellule, puis fournissez la bonne référence. En général, il est plus facile à utiliser%%writefile
qui écrit la cellule actuelle dans un fichier. J'ai mis à jour la réponse pour le mentionner.%loadpy
(au lieu de%load
).%load
est très bien, aller de l'avant: "%loadpy
( Alias de%load
) -%loadpy
a gagné en flexibilité et a supprimé l'exigence d'une.py
extension. Il a donc été renommé simplement en%load
. Vous pouvez consulter%load
docstring pour plus d'informations. "Pour écrire / enregistrer
%%writefile myfile.py
-a
pour ajouter). Un autre alias:%%file myfile.py
Courir
%run myfile.py
Pour charger / importer
%load myfile.py
Pour plus de magie et d'aide
%lsmagic
%COMMAND-NAME?
%run?
Remarque
En plus des commandes cell magic, le bloc-notes IPython (maintenant le bloc-notes 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
%%bash
commande cell magic).Pour exécuter une commande unix à partir de la cellule, faites simplement précéder votre commande de la
!
marque. par exemple:!python --version
voir votre version python!python myfile.py
exécutez myfile.py et affichez les résultats dans la cellule actuelle, tout comme%run
(voir la différence entre!python
et%run
dans les commentaires ci-dessous).Consultez également ce nbviewer pour plus d'explications avec des exemples. J'espère que cela t'aides.
la source
!dir Volume in drive D is Documents
etc ... Donc ce n'est pas seulement bash mais aussi cmd!!python --version
(faute de frappe)%run myfile.py
par opposition à!python myfile.py
. Si vous faites le premier, il s'exécutera en utilisant le noyau ipython, y compris le préchargement configuré. Un petit problème, mais j'ai rencontré un bug aujourd'hui où cela a fait une différence pour moi.%run myfile.py
décrit dans cette réponse tout en incluant des commandes de magie de cellule IPython dans votre script, utilisez%run myfile.ipy
.Faites glisser et déposez un fichier Python dans le tableau des carnets de notes "home" des carnets 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, copiez / collez à partir de votre éditeur préféré;)
la source
J'ai trouvé satisfaisant d'utiliser ls et cd dans le cahier ipython pour trouver le fichier. Tapez ensuite cat your_file_name dans la cellule, et vous récupérerez le contenu du fichier, que vous pourrez ensuite coller dans la cellule sous forme de code.
la source
!cat "file.txt"