Jak wyeksportować jedną komórkę notatnika jupyter?

10

Obecnie pracuję / prototypuję w notatniku Jupyter . Chcę uruchomić część mojego kodu na samodzielnej powłoce iPython .

Na razie eksportuję kod iPython (plik -> pobierz jako), a następnie uruchamiam go w moim iPython (z% run). Działa, ale chciałbym wyeksportować tylko jedną komórkę lub zestaw komórek. Tak, że mogę uruchomić tylko to, co zmodyfikowałem w moim notatniku Jupyter .

Manu H.
źródło
Nie jestem pewien, czy miałoby to sens, ponieważ w notatniku jupyter jądro utrzymuje stan wcześniej uruchomionych poleceń, co może nie mieć miejsca w przypadku polecenia ipython% run.
Rohan Sadale
3
W przypadku pojedynczej komórki można po prostu skopiować i wkleić lub użyć magii IPython: 1) %% writefile, patrz stackoverflow.com/questions/21034373/... lub 2)% save, zobacz polecenie stackoverflow.com/questions/947810/ ....
Valentas,
1
@RohanSadale chcę, aby działała zarówno w moim notatniku jupyter, jak i w mojej powłoce ipython. mój notatnik został udostępniony i kiedy chcę, aby polecenie było wcześniej uruchamiane na moim notatniku, ale z większym zestawem danych i przetestowaniem na nim pewnych rzeczy, zrobiłem to na mojej powłoce ipython.
Manu H
@ Valentas Twój komentarz powinien zostać przepisany jako odpowiedź.
Manu H
Zobacz powiązane pytanie: stackoverflow.com/questions/27952428/…
Pierz

Odpowiedzi:

4

Zobacz to pytanie stosu

Możesz użyć polecenia %% capture Jupyter notebooka, aby przechwycić dane wyjściowe komórki, a następnie wkleić je do pliku tekstowego

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

jeśli chcesz kodować komórkę do określonego pliku, na przykład code.txt, możesz użyć magicznej funkcji %% writefile

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

Również jeśli chcesz dołączyć do pliku, musisz użyć parametru -a

R__A_a_
źródło
Myślę, że źle rozumiesz pytanie. To, co chcę wyeksportować, nie jest wynikiem komórki, ale kodem, który napisałem w tej komórce.
Manu H
ipython.readthedocs.io/en/stable/interactive/magics.html Następnie możesz użyć magicznej funkcji
zapisu
1

Nie jestem pewien, czy w notesach Jupyter można wyeksportować tylko jedną komórkę .

Ale wiem, że możesz pobrać jako plik Pythona i po prostu skopiować wklej konkretną komórkę, którą chcesz w swoim nowym notesie Jupyter .

Daj mi znać, jeśli będziesz potrzebować dodatkowej pomocy!

Chase Kregor
źródło
0

Jednym ze sposobów, w jaki można to zrobić, jest użycie wyjściowego systemu buforowania Pythona w celu uzyskania dostępu do danych wyjściowych komórki, aby można je było zapisać w pliku. Dane wyjściowe z ponumerowanej komórki x są przechowywane w zmiennej o nazwie _x, a dane wyjściowe z ostatniej komendy znajdują się w _itd. Np. Zapisz dane wyjściowe z komórki o numerze 10 do pliku cell_10.pickleprzy użyciu formatu piklowanego Pythona:

import pickle
with open('cell_10.pickle', 'wb') as f:
    pickle.dump(_10, f, pickle.HIGHEST_PROTOCOL)
Pierz
źródło