[PYTHON] Convertissez plusieurs blocs-notes Jupyter ensemble en un fichier html

Il s'agit d'un script qui peut être utilisé lorsqu'il existe plusieurs fichiers ipynb pour le notebook Jupyter et que vous souhaitez les combiner dans un fichier html, puis les combiner en un seul endroit.

Recherche et convertit récursivement les fichiers ipynb, même si le fichier s'étend sur plusieurs dossiers.

Premier de la conclusion

Vous pouvez le convertir en utilisant le script suivant.

import shutil
from pathlib import Path
import subprocess

output_folder = "Chemin du dossier où le fichier html est enregistré"
notebook_folder = "Chemin d'accès au dossier dans lequel le fichier ipynb est stocké"

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))

Description du code

Recherche récursive de fichiers

Le rglob (" * .ipynb ") ʻof pathlib.Pathrecherche récursivement les fichiers ipynb dans le dossier spécifié. Utilisezglob (" * .ipynb ") ʻsi vous ne voulez pas effectuer de recherche récursive.

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

Convertir les fichiers de notebook Jupyter en HTML

Pour convertir un fichier notebook jupyter en html, utilisez la commande linux

jupyter nbconvert --to html "chemin du fichier ipynb"

ça ira.

Exécuter la commande linux avec python

Utilisez subprocess.run pour exécuter des commandes linux en python.

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

Déplacer des fichiers avec python

Enfin, déplacez le fichier html généré par shutil.move vers le dossier spécifié.

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

Recommended Posts

Convertissez plusieurs blocs-notes Jupyter ensemble en un fichier html
[Automation] Convertissez le code Python en fichier exe
Convertir le HTML en fichier texte
Comment convertir Python en fichier exe
Combinez plusieurs fichiers python en un seul fichier python
Convertissez plusieurs fichiers jpg en un seul fichier PDF