¿Cómo exportar una celda de un portátil jupyter?

10

Actualmente estoy trabajando / creando prototipos en un cuaderno Jupyter . Quiero ejecutar parte de mi código en un shell de iPython independiente .

Por ahora, exporto mi código de iPython (archivo -> descargar como) y luego lo ejecuto en mi iPython (con% de ejecución). Funciona, pero me gustaría exportar solo una celda o un conjunto de celdas. Entonces, solo puedo ejecutar lo que modifiqué en mi cuaderno Jupyter .

Manu H
fuente
No estoy seguro de si tendría sentido, ya que en el cuaderno jupyter, el núcleo mantiene el estado de los comandos ejecutados anteriormente, lo que podría no ser el caso con el comando ipython% run.
Rohan Sadale
3
Para una sola celda, simplemente puede copiar y pegar o usar la magia de IPython: 1) %% writefile, consulte stackoverflow.com/questions/21034373/… o 2)% save, consulte el comando stackoverflow.com/questions/947810/… .
Valentas
1
@RohanSadale lo que quiero es trabajar tanto en mi notebook jupyter como en mi shell ipython. mi computadora portátil está diseñada para ser compartida y cuando quiero hacer que el comando se ejecute previamente en mi computadora portátil pero con un conjunto de datos más grande y probar algunas cosas, lo hice en mi shell de ipython.
Manu H
@Valentas tu comentario debe reescribirse como respuesta.
Manu H
Ver pregunta relacionada: stackoverflow.com/questions/27952428/…
Pierz

Respuestas:

4

Ver esta pregunta de pila

Puede usar el comando mágico %% capture Jupyter notebook para capturar la salida de la celda y luego pegarla en su archivo de texto con

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

si desea colocar el código de la celda en un archivo específico, por ejemplo code.txt, puede usar la función mágica %% writefile

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

Además, si desea agregar un archivo, debe usar un parámetro

R__A_a_
fuente
Creo que malinterpretas la pregunta. Lo que quiero exportar no es el resultado de una celda, sino el código que escribí en esa celda.
Manu H
ipython.readthedocs.io/en/stable/interactive/magics.html Entonces puede usar la función mágica %% writefile
R__A_a_
1

No estoy seguro de si es posible exportar solo una celda en las notebooks Jupyter .

Pero sí sé que puede descargarlo como un archivo python y simplemente copiar y pegar la celda particular que desea en su nuevo cuaderno Jupyter .

¡Avísame si necesitas más ayuda!

Chase Kregor
fuente
0

Una forma de hacerlo es utilizar el sistema de almacenamiento en caché de salida de Python para acceder a la salida de una celda para que se pueda guardar en un archivo. La salida de una celda numerada x se almacena en una variable denominada _x, y la salida del último comando está en _etc., por ejemplo, guarde la salida de la celda número 10 en un archivo cell_10.pickleusando el formato pickle de python:

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