Come esportare una cella di un notebook jupyter?


10

Attualmente sto lavorando / prototipazione su un notebook Jupyter . Voglio eseguire parte del mio codice su una shell iPython autonoma .

Per ora, esporto il mio codice iPython (file -> scarica come) e quindi lo eseguo nel mio iPython (con% run). Funziona, ma vorrei esportare solo una cella o un insieme di celle. Quindi, posso eseguire solo ciò che ho modificato nel mio taccuino Jupyter .


Non sono sicuro che avrebbe senso come nel notebook jupyter, il kernel mantiene lo stato dei comandi precedentemente eseguiti che potrebbe non essere il caso del comando% run di ipython.
Rohan Sadale,

3
Per una singola cellula si potrebbe semplicemente copiare e incollare o utilizzare ipython magie: 1) %% WriteFile, vedere stackoverflow.com/questions/21034373/... o 2)% di risparmio energetico, vedere stackoverflow.com/questions/947810/... comando.
Valentas,

1
@RohanSadale quello che voglio è lavorare sia nel mio taccuino jupyter che nella mia shell ipython. il mio taccuino è fatto per essere condiviso e quando voglio eseguire il comando precedentemente eseguito sul mio taccuino ma con un set di dati più grande e testare alcune cose su di esso, l'ho fatto sulla mia shell IPython.
Manu H,

@Valentas il tuo commento dovrebbe essere riscritto come una risposta.
Manu H,

Risposte:


4

Vedi questa domanda sullo stack

Puoi usare il comando magico di %% capture Jupyter per catturare l'output della cella e incollarlo nel tuo file di testo

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

se si desidera inserire il codice di cella in un file specifico, ad esempio code.txt, è possibile utilizzare la funzione magica %% writefile

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

Inoltre, se si desidera aggiungere un file, è necessario utilizzare un parametro -a


Penso che tu abbia frainteso la domanda. Quello che voglio esportare non è il risultato di una cella ma il codice che ho scritto in quella cella.
Manu H,

ipython.readthedocs.io/en/stable/interactive/magics.html Quindi puoi usare la funzione magica %% writefile
R__A_a_

1

Non sono sicuro che sia possibile esportare solo una cella nei notebook Jupyter .

Ma so che potresti scaricare come file Python e semplicemente copiare e incollare la cella particolare che desideri nel tuo nuovo taccuino Jupyter .

Fammi sapere se hai bisogno di ulteriore aiuto!


0

Un modo per farlo è utilizzare il sistema di cache di output di Python per accedere all'output di una cella in modo che possa essere salvato in un file. L'output di una cella numerata x viene memorizzato in una variabile denominata _xe l'output dell'ultimo comando è in _ecc. Ad es. Salvare l'output della cella numero 10 in un file cell_10.pickleusando il formato pickle di Python:

import pickle
with open('cell_10.pickle', 'wb') as f:
    pickle.dump(_10, f, pickle.HIGHEST_PROTOCOL)
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.