[PYTHON] Konvertieren Sie mehrere Jupyter-Notizbücher zusammen in eine HTML-Datei

Dies ist ein Skript, das verwendet werden kann, wenn es mehrere Jupynter-Dateien für Jupyter Notebook gibt und Sie diese zu einer HTML-Datei kombinieren und dann an einem Ort kombinieren möchten.

Rekursiv sucht und konvertiert ipynb-Dateien, auch wenn sich die Datei über mehrere Ordner erstreckt.

Zunächst aus der Schlussfolgerung

Sie können es mit dem folgenden Skript konvertieren.

import shutil
from pathlib import Path
import subprocess

output_folder = "Ordnerpfad, in dem die HTML-Datei gespeichert wird"
notebook_folder = "Pfad zu dem Ordner, in dem die ipynb-Datei gespeichert ist"

path_to_notebook_folder = Path(notebook_folder)
path_to_output_folder = Path(output_folder)

for path_to_ipynb in path_to_notebook_folder.rglob("*.ipynb"):
    print(str(path_to_ipynb))
    proc = subprocess.run(["jupyter", "nbconvert", "--to", "html", str(path_to_ipynb)], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    print(proc.stdout.decode("utf8"))
    print(proc.stderr.decode("utf8"))
    path_to_src_html = path_to_ipynb.with_suffix(".html")
    path_to_dest_html = path_to_output_folder.joinpath(path_to_src_html.name)
    shutil.move(str(path_to_src_html), str(path_to_dest_html))

Beschreibung des Codes

Rekursive Suche nach Dateien

Das rglob (" * .ipynb ") von pathlib.Path sucht rekursiv nach ipynb-Dateien unter dem angegebenen Ordner. Verwenden Sie glob (" * .ipynb "), wenn Sie nicht rekursiv suchen möchten.

for path_to_ipynb in path_to_notebook_folder.rglob("*.ipynb"):
    print(str(path_to_ipynb))

Konvertieren Sie Jupyter-Notebook-Dateien in HTML

Verwenden Sie den Befehl linux, um eine Jupyter-Notebook-Datei in HTML zu konvertieren

jupyter nbconvert --to html "ipynb Dateipfad"

Wird besorgt.

Führen Sie den Linux-Befehl mit Python aus

Verwenden Sie "subprocess.run", um Linux-Befehle in Python auszuführen.

subprocess.run(["jupyter", "nbconvert", "--to", "html", "ipynb Dateipfad"], stdout=subprocess.PIPE, stderr=subprocess.PIPE)

Verschieben Sie Dateien mit Python

Verschieben Sie abschließend die von "shutil.move" generierte HTML-Datei in den angegebenen Ordner.

shutil.move(str(path_to_src_html), str(path_to_dest_html))

Recommended Posts

Konvertieren Sie mehrere Jupyter-Notizbücher zusammen in eine HTML-Datei
[Automatisierung] Konvertieren Sie Python-Code in eine exe-Datei
Konvertieren Sie HTML in eine Textdatei
So konvertieren Sie Python in eine exe-Datei
Kombinieren Sie mehrere Python-Dateien zu einer Python-Datei
Konvertieren Sie mehrere JPG-Dateien in eine PDF-Datei