将 Jupyter notebook 转换为 html 原生 Python 输出
Convert a Jupyter notebook to html output in native Python
我知道我可以打电话
jupyter nbconvert --execute --to html notebook.ipynb
来自 shell,或者从 Python:
进行系统调用
import os
os.system('jupyter nbconvert --execute --to html notebook.ipynb')
但是当 nbconvert
模块在本机 Python 中可用时必须通过系统调用来执行此操作似乎很奇怪!
我想编写本机 python 来执行 iPython 笔记本并将其转换为 html 文件。
我研究了 official documentation 一点,但无法将它们拼凑起来。
我的问题是:
- 是否有将笔记本转换为本机 html 的示例 Python?
- 是否有不这样做的令人信服的理由?
好吧,经过反复试验我发现了:
import nbformat
from nbconvert.preprocessors import ExecutePreprocessor
from nbconvert import HTMLExporter
# read source notebook
with open('report.ipynb') as f:
nb = nbformat.read(f, as_version=4)
# execute notebook
ep = ExecutePreprocessor(timeout=-1, kernel_name='python3')
ep.preprocess(nb)
# export to html
html_exporter = HTMLExporter()
html_exporter.exclude_input = True
html_data, resources = html_exporter.from_notebook_node(nb)
# write to output file
with open("notebook.html", "w") as f:
f.write(html_data)
诚然,比单个 os.system
调用要多得多,但令我惊讶的是,本地 python 示例如此之少...
我知道我可以打电话
jupyter nbconvert --execute --to html notebook.ipynb
来自 shell,或者从 Python:
进行系统调用import os
os.system('jupyter nbconvert --execute --to html notebook.ipynb')
但是当 nbconvert
模块在本机 Python 中可用时必须通过系统调用来执行此操作似乎很奇怪!
我想编写本机 python 来执行 iPython 笔记本并将其转换为 html 文件。 我研究了 official documentation 一点,但无法将它们拼凑起来。 我的问题是:
- 是否有将笔记本转换为本机 html 的示例 Python?
- 是否有不这样做的令人信服的理由?
好吧,经过反复试验我发现了:
import nbformat
from nbconvert.preprocessors import ExecutePreprocessor
from nbconvert import HTMLExporter
# read source notebook
with open('report.ipynb') as f:
nb = nbformat.read(f, as_version=4)
# execute notebook
ep = ExecutePreprocessor(timeout=-1, kernel_name='python3')
ep.preprocess(nb)
# export to html
html_exporter = HTMLExporter()
html_exporter.exclude_input = True
html_data, resources = html_exporter.from_notebook_node(nb)
# write to output file
with open("notebook.html", "w") as f:
f.write(html_data)
诚然,比单个 os.system
调用要多得多,但令我惊讶的是,本地 python 示例如此之少...