Ipython Notebook: Zellen programmatisch lesen und ausführen

8

Im ipython-Notizbuch möchte ich Code-Zellen programmatisch aus einer Code-Zelle selbst lesen und ausführen.

Etwas wie

%Vor%

Ich habe eine Lösung hier gefunden, die Funktion execute_notebook liest eine ipynb -Datei Zelle für Zelle und führt Code-Zellen mit get_ipython().run_cell() aus.

Gibt es eine Möglichkeit, das Gleiche zu tun, d. h. ohne zuerst die Zellen aus der externen ipynb -Datei zu lesen? Gibt es eine Möglichkeit, Makros zu schreiben, auf Code-Zellen innerhalb eines Ipython-Notebooks zu verweisen und darauf zuzugreifen?

    
Roland Fabio 11.03.2014, 14:03
quelle

1 Antwort

1

Ich bin mir nicht sicher, ob ich deine Frage richtig verstehe. Möchten Sie in der Lage sein, genau das gleiche Notebook zu bearbeiten, in dem Sie gerade arbeiten? Obwohl dies möglich ist, klingt es ehrlich gesagt wie ein Rezept für ein Desaster, weil es Ihr momentan laufendes Notebook höchstwahrscheinlich in einem undefinierten Zustand zurücklassen wird (oder es zumindest schwer machen würde, dem zu folgen, was läuft) auf).

Eine sauberere Lösung besteht darin, ein separates Notizbuch zu erstellen, in das Sie genau die Codezellen aufnehmen, die Sie für Ihren Anwendungsfall benötigen, und sie dann auszuführen. (Alternativ können Sie eine "Vorlage" .ipynb -Datei mit Dummy-Code-Zellen haben, die Sie dann programmatisch durch den eigentlichen Code ersetzen, den Sie ausführen möchten.)

Ich musste vor kurzem eine ähnliche Sache machen und habe ein detailliertes Beispiel geschrieben, das zeigt, wie man das macht . Es erzeugt programmatisch ein neues Notizbuch, fügt ein paar Markdown- und Code-Zellen hinzu (die in diesem Fall ein Sinuswellen-Plot erzeugen, wo die Frequenz im Fluge injiziert wird), führt dann dieses Notizbuch aus und speichert das Ergebnis für die weitere Nachbearbeitung. p>

Ich hoffe, das hilft. Lass es mich wissen, wenn ich völlig falsch verstanden habe, was du versuchst zu tun.

    
cilix 04.05.2015 18:57
quelle

Tags und Links