Wie exportiere ich eine Zelle eines Jupyter-Notebooks?

10

Ich arbeite gerade an einem Jupyter- Notebook. Ich möchte einen Teil meines Codes auf einer eigenständigen iPython- Shell ausführen .

Im Moment exportiere ich meinen iPython- Code (Datei -> Download als) und führe ihn dann in meinem iPython aus (mit% run). Es funktioniert, aber ich möchte nur eine Zelle oder einen Satz von Zellen exportieren. Damit ich nur das ausführen kann, was ich in meinem Jupyter- Notebook geändert habe .

Manu H.
quelle
Ich bin nicht sicher, ob es sinnvoll wäre, wie in Jupyter Notebook, Kernel behält den Status zuvor ausgeführter Befehle bei, was bei ipython% run Befehl möglicherweise nicht der Fall ist.
Rohan Sadale
3
Für eine einzelne Zelle können Sie einfach IPython Magics kopieren und einfügen oder verwenden: 1) %% writefile, siehe stackoverflow.com/questions/21034373/… oder 2)% save, siehe Befehl stackoverflow.com/questions/947810/… .
Valentas
1
@RohanSadale Ich möchte sowohl in meinem Jupyter-Notizbuch als auch in meiner Ipython-Shell arbeiten. Mein Notizbuch ist für die gemeinsame Nutzung vorgesehen. Wenn ich den Befehl zuvor auf meinem Notizbuch ausführen möchte, aber einen größeren Datensatz habe und einige Dinge darauf teste, habe ich ihn auf meiner Ipython-Shell erstellt.
Manu H
@Valentas Ihr Kommentar sollte als Antwort umgeschrieben werden.
Manu H
Siehe verwandte Frage: stackoverflow.com/questions/27952428/…
Pierz

Antworten:

4

Siehe diese Stapelfrage

Sie können den magischen Befehl %% capture Jupyter notebook verwenden, um die Ausgabe der Zelle abzufangen und sie dann mit in Ihre Textdatei einzufügen

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

Wenn Sie Code für eine bestimmte Datei, z. B. code.txt, speichern möchten, können Sie die magische Funktion %% writefile verwenden

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

Auch wenn Sie an eine Datei anhängen möchten, müssen Sie den Parameter -a verwenden

R__A_a_
quelle
Ich denke, Sie verstehen die Frage falsch. Was ich exportieren möchte, ist nicht das Ergebnis einer Zelle, sondern der Code, den ich in diese Zelle geschrieben habe.
Manu H
ipython.readthedocs.io/en/stable/interactive/magics.html Dann können Sie %% writefile magic function
R__A_a_
1

Ich bin nicht sicher, ob es möglich ist, nur eine Zelle in Jupyter- Notizbücher zu exportieren .

Aber ich weiß, dass Sie als Python-Datei herunterladen und einfach kopieren und die gewünschte Zelle in Ihr neues Jupyter- Notizbuch einfügen können .

Lassen Sie mich wissen, wenn Sie weitere Hilfe benötigen!

Chase Kregor
quelle
0

Eine Möglichkeit, dies zu tun, besteht darin, das Ausgabe-Caching-System von Python zu verwenden , um auf die Ausgabe einer Zelle zuzugreifen, damit diese in einer Datei gespeichert werden kann. Die Ausgabe einer nummerierten Zelle x wird in einer Variablen mit dem Namen gespeichert _x, und die Ausgabe des letzten Befehls erfolgt in _usw. Beispiel: Speichern Sie die Ausgabe der Zelle Nummer 10 in einer Datei im cell_10.picklePython-Pickle-Format:

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