[PYTHON] Enregistrez automatiquement les fichiers .py et .html dans le bloc-notes Jupyter.

Motivation

Je crée une note récapitulative de programmation avec jupyter notebook, mais je souhaite enregistrer un beau fichier html (ou plutôt visualisable sans partir du terminal) au même moment que la sauvegarde automatique de jupyter notebook.

Site référencé

IPython and Jupyter Notebooks: Automatically Export .py and .html

Code source

Créez le code suivant sous ~ ./. Jupyter /.

jupyter_notebook_config.py


# Based off of https://github.com/jupyter/notebook/blob/master/docs/source/extending/savehooks.rst

import io
import os
from notebook.utils import to_api_path

_script_exporter = None
_html_exporter = None

def script_post_save(model, os_path, contents_manager, **kwargs):
    """convert notebooks to Python script after save with nbconvert
    replaces `ipython notebook --script`
    """
    from nbconvert.exporters.script import ScriptExporter
    from nbconvert.exporters.html import HTMLExporter

    if model['type'] != 'notebook':
        return

    global _script_exporter
    if _script_exporter is None:
        _script_exporter = ScriptExporter(parent=contents_manager)
    log = contents_manager.log

    global _html_exporter
    if _html_exporter is None:
        _html_exporter = HTMLExporter(parent=contents_manager)
    log = contents_manager.log

    # save .py file
    base, ext = os.path.splitext(os_path)
    script, resources = _script_exporter.from_filename(os_path)
    script_fname = base + resources.get('output_extension', '.txt')
    log.info("Saving script /%s", to_api_path(script_fname, contents_manager.root_dir))
    with io.open(script_fname, 'w', encoding='utf-8') as f:
        f.write(script)

    # save html
    base, ext = os.path.splitext(os_path)
    script, resources = _html_exporter.from_filename(os_path)
    script_fname = base + resources.get('output_extension', '.txt')
    log.info("Saving html /%s", to_api_path(script_fname, contents_manager.root_dir))
    with io.open(script_fname, 'w', encoding='utf-8') as f:
        f.write(script)
c.FileContentsManager.post_save_hook = script_post_save

Enregistrez-le, lancez normalement jupyter notebook et assurez-vous que le script est enregistré. :)

Supplément

Si vous n'avez pas besoin de .py, commentez simplement le script.

Merci à l'administrateur du site !!!

Recommended Posts

Enregistrez automatiquement les fichiers .py et .html dans le bloc-notes Jupyter.
Afficher le HTML dans le notebook Jupyter
Convertir le fichier .ipynb du notebook jupyter en fichier .py exécutable python
Erreur de multitraitement dans Jupyter Notebook
Incorporer le fichier wav dans Jupyter
S'ouvre automatiquement dans une nouvelle fenêtre lors du lancement de Jupyter Notebook
Afficher les photos en Python et html
Manipuler des fichiers et des dossiers en Python
Générer le notebook Jupyter ".ipynb" en Python
Incorporez votre HTML préféré dans Jupyter
Jupyter Notebook: 4 trucs et astuces banals
Enregistrer et récupérer des fichiers avec Pepper
Afficher les graphiques en ligne dans Jupyter Notebook
Exporter et exporter des fichiers en Python
Un moyen simple de saisir et d'exécuter des cas de test AtCoder dans Jupyter Notebook
Autoriser Jupyter Notebook à incorporer des données audio dans des tableaux HTML pour la lecture
Fuite de mémoire dans Python Jupyter Lab (Notebook)?
Utiliser Jupyter Lab et Jupyter Notebook avec EC2
Créer et exécuter la configuration d'embulk dans Jupyter
Modifier et enregistrer des fichiers en lecture seule avec vim
Comment exécuter des commandes avec Jupyter Notebook
Opérations de base et touches de raccourci de Jupyter Notebook
Lire et écrire des fichiers JSON avec Python
Lier Python et JavaScript avec le notebook Jupyter
Créez un environnement PYNQ sur Ultra96 V2 et connectez-vous à Jupyter Notebook
12. Enregistrez la première colonne dans col1.txt et la deuxième colonne dans col2.txt
Créez automatiquement des rapports Word et Excel avec Python
Afficher les captures d'écran de Selenium dans Jupyter sans enregistrer
Lire et écrire des fichiers CSV et JSON avec Python
Coexistence d'Anaconda 2 et Anaconda 3 dans Jupyter + Bonus (Julia)
(En bas) Coopération entre Jupyter Notebook et l'exécution d'Excel
Utilisez ipywidgets dans jupyter notebook pour manipuler les paramètres de manière interactive, puis essayez le traitement d'image