406 Stimmen

Wie konvertiere ich ein IPython Notebook über die Befehlszeile in eine Python-Datei?

Ich erwäge, die *.ipynb -Dateien als Quelle der Wahrheit zu verwenden und sie programmgesteuert in .py-Dateien für geplante Jobs/Aufgaben zu 'kompilieren'.

Der einzige Weg, den ich kenne, um das zu tun, ist über die GUI. Gibt es einen Weg, es über die Befehlszeile zu tun?

9voto

Sachin Hatikankan Punkte 401

Ich verstehe, dass dies ein alter Thread ist. Ich habe mit dem gleichen Problem zu kämpfen und wollte die .pynb-Datei über die Befehlszeile in eine .py-Datei umwandeln.

Meine Suche führte mich zu ipynb-py-convert

Indem ich den unten stehenden Schritten folgte, konnte ich die .py-Datei erhalten

  1. Installiere "pip install ipynb-py-convert"
  2. Gehe über die Eingabeaufforderung in das Verzeichnis, in dem die ipynb-Datei gespeichert ist
  3. Gib den Befehl ein

> ipynb-py-convert YourFileName.ipynb YourFilename.py

Zum Beispiel: ipynb-py-convert getting-started-with-kaggle-titanic-problem.ipynb getting-started-with-kaggle-titanic-problem.py

Der oben stehende Befehl erstellt ein Python-Skript mit dem Namen "YourFileName.py" und gemäß unserem Beispiel wird die Datei getting-started-with-kaggle-titanic-problem.py erstellt

8voto

justanr Punkte 700

Sie können dies über die IPython-API tun.

from IPython.nbformat import current as nbformat
from IPython.nbconvert import PythonExporter

filepath = 'Pfad/zum/mein_notizbuch.ipynb'
export_path = 'Pfad/zum/mein_notizbuch.py'

with open(filepath) as fh:
    nb = nbformat.reads_json(fh.read())

exporter = PythonExporter()

# source ist ein Tupel mit Python-Quellcode
# meta enthält Metadaten
source, meta = exporter.from_notebook_node(nb)

with open(export_path, 'w+') as fh:
    fh.writelines(source)

5voto

yaach Punkte 321

Mit nbconvert 6.07 und Jupyter-Client 6.1.12:

Konvertiere Jupyter-Notizbuch in Python-Skript

$ jupyter nbconvert mynotebook.ipynb --to python

Konvertiere Jupyter-Notizbuch in Python-Skript und gebe den Ausgabedateinamen an

$ jupyter nbconvert mynotebook.ipnb --to python --output myscript.py

4voto

Don Smythe Punkte 9214

Zum Konvertieren aller Dateien im aktuellen Verzeichnis im Format *.ipynb in Python-Skripte rekursiv:

for i in *.ipynb **/*.ipynb; do 
    echo "$i"
    jupyter nbconvert  "$i" "$i"
done

3voto

Pablo Adames Punkte 439

Das folgende Beispiel wandelt ein Iron Python Notebook namens a_notebook.ipynb in ein Python-Skript namens a_python_script.py um und lässt die Zellen aus, die mit dem Schlüsselwort remove getaggt sind, das ich manuell zu den Zellen hinzufüge, die im Skript nicht enthalten sein sollen, um Visualisierungen und andere Schritte auszulassen, die nach Abschluss des Notebooks nicht mehr vom Skript ausgeführt werden müssen.

import nbformat as nbf
from nbconvert.exporters import PythonExporter
from nbconvert.preprocessors import TagRemovePreprocessor

with open("a_notebook.ipynb", 'r', encoding='utf-8') as f:
    the_notebook_nodes = nbf.read(f, as_version = 4)

trp = TagRemovePreprocessor()

trp.remove_cell_tags = ("remove",)

pexp = PythonExporter()

pexp.register_preprocessor(trp, enabled= True)

the_python_script, meta = pexp.from_notebook_node(the_notebook_nodes)

with open("a_python_script.py", 'w', encoding='utf-8') as f:
    f.writelines(the_python_script)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X