Ich bin kürzlich dazu übergegangen, IPython-Notebooks als Teil meines Workflows zu verwenden. Es ist mir jedoch nicht gelungen, eine Möglichkeit zu finden, .py-Dateien in die einzelnen Zellen eines geöffneten IPython-Notizbuchs zu importieren, damit sie bearbeitet, ausgeführt und dann gespeichert werden können. Kann das gemacht werden?
Ich habe dies in der Dokumentation gefunden, die mir sagt, wie man .py-Dateien als neue Notizbücher importiert, aber dies entspricht nicht dem, was ich erreichen möchte.
Anregungen wäre sehr dankbar.
python
jupyter-notebook
ipython
jupyter
aaronsstack
quelle
quelle
Antworten:
Eine Textdatei kann mit dem Befehl magic in eine Notizbuchzelle geladen werden
%load
.Wenn Sie eine Zelle ausführen, die Folgendes enthält:
Der Inhalt von
filename.py
wird in die nächste Zelle geladen. Sie können es wie gewohnt bearbeiten und ausführen.Um den Zelleninhalt wieder in einer Datei zu speichern, fügen Sie die Zellenmagie
%%writefile filename.py
am Anfang der Zelle hinzu und führen Sie sie aus. Beachten Sie, dass eine Datei mit demselben Namen, die bereits vorhanden ist, stillschweigend überschrieben wird .Um die Hilfe für einen magischen Befehl anzuzeigen, fügen Sie ein
?
: like%load?
oder hinzu%%writefile?
.Für allgemeine Hilfe zu magischen Funktionen geben Sie "% magic" ein. Verwenden Sie% lsmagic, um eine Liste der verfügbaren magischen Funktionen anzuzeigen. Geben Sie für eine Beschreibung eines dieser Elemente% magic_name? Ein, z. B. '% cd?'.
Siehe auch: Magic-Funktionen aus den offiziellen IPython-Dokumenten.
quelle
%save -f
scheint der Weg zu sein, das zu tun, wonach ich gesucht habe. Vielen Dank!save -f
ist eine Art indirekte Methode zum Speichern in einer Datei und funktioniert nur, wenn Sie zuerst die Zelle ausführen und dann die richtige Referenz angeben. Im Allgemeinen ist es einfacher zu verwenden,%%writefile
wenn die aktuelle Zelle in eine Datei geschrieben wird. Ich habe die Antwort aktualisiert, um dies zu erwähnen.%loadpy
(anstelle von%load
).%load
in Ordnung: "%loadpy
( Alias of%load
) -%loadpy
hat an Flexibilität gewonnen und die Anforderung einer.py
Erweiterung fallen gelassen . Daher wurde sie einfach in umbenannt Weitere Informationen finden%load
Sie in der%load
Dokumentzeichenfolge. "Schreiben / Speichern
%%writefile myfile.py
-a
zum Anhängen verwenden). Ein weiterer Alias:%%file myfile.py
Laufen
%run myfile.py
Laden / Importieren
%load myfile.py
Für mehr Magie und Hilfe
%lsmagic
%COMMAND-NAME?
%run?
Hinweis
Neben den zellmagischen Befehlen ist das IPython-Notizbuch (jetzt Jupyter-Notizbuch) so cool, dass Sie jeden Unix-Befehl direkt aus der Zelle heraus verwenden können (dies entspricht auch der Verwendung des
%%bash
zellmagischen Befehls).Um einen Unix-Befehl in der Zelle auszuführen, stellen Sie Ihrem Befehl einfach ein
!
Zeichen voran. beispielsweise:!python --version
Sehen Sie sich Ihre Python-Version an!python myfile.py
Führen Sie myfile.py aus und geben Sie die Ergebnisse in der aktuellen Zelle aus%run
(siehe den Unterschied zwischen!python
und%run
in den Kommentaren unten).Weitere Erklärungen mit Beispielen finden Sie in diesem nbviewer . Hoffe das hilft.
quelle
!dir Volume in drive D is Documents
etc ... Es ist also nicht nur Bash, sondern auch Cmd!!python --version
(Tippfehler)%run myfile.py
als im Gegensatz zu!python myfile.py
. Wenn Sie das erstere tun, wird es mit dem ipython-Kernel ausgeführt, einschließlich des konfigurierten Vorladens. Ein kleines Problem, aber ich bin heute auf einen Fehler gestoßen, der für mich einen Unterschied gemacht hat.%run myfile.py
das in dieser Antwort beschriebene Äquivalent ausführen möchten, während Sie IPython Cell Magic-Befehle in Ihr Skript aufnehmen, verwenden Sie%run myfile.ipy
.Ziehen Sie eine Python-Datei per Drag & Drop in die "Home" -Notizbuch-Tabelle der Ipython-Notizbücher und klicken Sie auf Hochladen. Dadurch wird ein neues Notizbuch mit nur einer Zelle erstellt, die den Inhalt Ihrer .py-Datei enthält
Sonst kopiere / füge es aus deinem Lieblingseditor ein;)
quelle
Ich fand es zufriedenstellend, ls und cd in ipython notebook zu verwenden, um die Datei zu finden. Geben Sie dann cat your_file_name in die Zelle ein und Sie erhalten den Inhalt der Datei zurück, die Sie dann als Code in die Zelle einfügen können.
quelle
!cat "file.txt"