Comment exporter une cellule d'un cahier jupyter?

10

Je travaille actuellement / prototypage dans un ordinateur portable Jupyter . Je veux exécuter une partie de mon code sur un shell iPython autonome .

Pour l'instant, j'exporte mon code iPython (fichier -> télécharger sous) puis je l'exécute dans mon iPython (avec% run). Cela fonctionne, mais je voudrais exporter une seule cellule ou un ensemble de cellules. Donc, je ne peux exécuter que ce que j'ai modifié dans mon cahier Jupyter .

Manu H
la source
Je ne sais pas si cela aurait du sens, comme dans le cahier jupyter, le noyau maintient l'état des commandes précédemment exécutées, ce qui pourrait ne pas être le cas avec la commande ipython% run.
Rohan Sadale
3
Pour une seule cellule, vous pouvez simplement copier et coller ou utiliser la magie IPython: 1) %% writefile, voir stackoverflow.com/questions/21034373/… ou 2)% save, voir stackoverflow.com/questions/947810/… .
Valentas
1
@RohanSadale ce que je veux, c'est travailler à la fois dans mon cahier jupyter et dans mon shell ipython. mon bloc-notes est fait pour être partagé et quand je veux exécuter la commande précédemment sur mon bloc-notes mais avec un plus grand ensemble de données et tester des trucs dessus, je l'ai fait sur mon shell ipython.
Manu H
@Valentas, votre commentaire doit être réécrit en réponse.
Manu H
Voir la question connexe: stackoverflow.com/questions/27952428/…
Pierz

Réponses:

4

Voir cette question de pile

Vous pouvez utiliser la commande magique %% capture Jupyter notebook pour capturer la sortie de la cellule, puis la coller dans votre fichier texte avec

with open('output.txt', 'w') as out:
   out.write(cap.stdout)

si vous voulez coder une cellule dans un fichier spécifique, par exemple code.txt, vous pouvez utiliser la fonction magique %% writefile

%%writefile example.txt
ab = 'This is code'
a = 5
print(a+ 2)

De plus, si vous souhaitez ajouter un fichier, vous devez utiliser le paramètre -a

R__A_a_
la source
Je pense que vous avez mal compris la question. Ce que je veux exporter n'est pas le résultat d'une cellule mais le code que j'ai écrit dans cette cellule.
Manu H
ipython.readthedocs.io/en/stable/interactive/magics.html Ensuite, vous pouvez utiliser la fonction magique %% writefile
R__A_a_
1

Je ne sais pas s'il est possible d'exporter une seule cellule dans les cahiers Jupyter .

Mais je sais que vous pouvez télécharger un fichier python et simplement copier-coller la cellule particulière que vous souhaitez dans votre nouveau bloc- notes Jupyter .

Faites-moi savoir si vous avez besoin d'aide!

Chase Kregor
la source
0

Cela peut être fait en utilisant le système de mise en cache de sortie de Python pour accéder à la sortie d'une cellule afin qu'elle puisse être enregistrée dans un fichier. La sortie d'une cellule numérotée x est stockée dans une variable nommée _x, et la sortie de la dernière commande est en _etc. par exemple enregistrer la sortie du nombre de cellules 10 à un fichier en cell_10.pickleutilisant le format de cornichon de python:

import pickle
with open('cell_10.pickle', 'wb') as f:
    pickle.dump(_10, f, pickle.HIGHEST_PROTOCOL)
Pierz
la source