web-dev-qa-db-de.com

Wie lade / bearbeite / führe / speichere ich Textdateien (.py) in eine IPython-Notebook-Zelle?

Ich bin kürzlich dazu übergegangen, IPython-Notizbücher als Teil meines Workflows zu verwenden. Es ist mir jedoch nicht gelungen, 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 this in der Dokumentation gefunden, in der erklärt wird, wie man .py-Dateien als neue Notizbücher importiert, aber dies ist nicht das, was ich erreichen möchte.

Anregungen wäre sehr dankbar.

210
aaronsstack

EDIT: Ab IPython 3 (jetzt Jupyter-Projekt) verfügt das Notebook über einen Texteditor, der als bequemere Alternative zum Laden von/verwendet werden kann. Textdateien bearbeiten/speichern.

Eine Textdatei kann mit dem Magic-Befehl %load in eine Notebook-Zelle geladen werden.

Wenn Sie eine Zelle ausführen, die Folgendes enthält:

%load filename.py

der Inhalt von filename.py wird in die nächste Zelle geladen. Sie können es wie gewohnt bearbeiten und ausführen.

Um den Zellinhalt wieder in einer Datei zu speichern, fügen Sie am Anfang der Zelle den Eintrag cell-magic %%writefile filename.py hinzu und führen Sie ihn aus. Beachten Sie, dass eine bereits vorhandene Datei mit demselben Namen stillschweigend überschrieben wird .

Um die Hilfe für einen Magic-Befehl anzuzeigen, fügen Sie einen ? hinzu: wie %load? oder %%writefile?.

Für allgemeine Hilfe zu Zauberfunktionen geben Sie "% magic" ein. Verwenden Sie% lsmagic, um eine Liste der verfügbaren Zauberfunktionen zu erhalten. Geben Sie für eine Beschreibung eines dieser Befehle% magic_name? Ein, z. '%CD?'.

Siehe auch: Magic functions aus den offiziellen IPython-Dokumenten.

273
user2304916

Schreiben/Speichern

_%%writefile myfile.py_

  • schreibe/speichere Zellinhalte in myfile.py (benutze _-a_ um anzufügen). Ein anderer Alias: _%%file myfile.py_

Zu rennen

_%run myfile.py_

  • führen Sie myfile.py aus und geben Sie die Ergebnisse in der aktuellen Zelle aus

Laden/Importieren

_%load myfile.py_

  • laden Sie "import" myfile.py in die aktuelle Zelle

Für mehr Magie und Hilfe

_%lsmagic_

  • liste alle anderen coolen cell magic Befehle auf.

_%COMMAND-NAME?_

  • hier erfahren Sie, wie Sie einen bestimmten Befehl verwenden. d.h. _%run?_

Hinweis

Neben den Cell Magic-Befehlen ist IPython Notebook (jetzt Jupyter Notebook) so cool, dass Sie jeden Unix-Befehl direkt aus der Zelle verwenden können (dies entspricht auch der Verwendung des Cell Magic-Befehls _%%bash_).

Wenn Sie einen Unix-Befehl in der Zelle ausführen möchten, müssen Sie Ihrem Befehl lediglich die Markierung _!_ voranstellen. zum Beispiel:

  • _!python --version_ Siehe Ihre python -Version
  • _!python myfile.py_ Führe myfile.py aus und gib die Ergebnisse in der aktuellen Zelle aus, genau wie _%run_ (siehe den Unterschied zwischen _!python_ und _%run_ in den Kommentaren unten).

Siehe auch this nbviewer für weitere Erklärungen mit Beispielen. Hoffe das hilft.

101
Aziz Alto

Ziehen Sie eine Python -Datei in die "Home" -Notizbuchtabelle von Ipython Notebooks und legen Sie sie dort ab. Klicken Sie auf "Hochladen". Dadurch wird ein neues Notizbuch mit nur einer Zelle erstellt, die den Inhalt Ihrer .py-Datei enthält

Andernfalls kopieren/einfügen von Ihrem Lieblingseditor;)

7
Raphaël Braud

Ich habe festgestellt, dass es zufriedenstellend ist, 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.

4
RussellStewart