引言
nbconvert 是 Jupyter 提供的一个工具,允许将 .ipynb 文件转换为其他格式(如 HTML、PDF、Markdown、LaTeX、Python 脚本等),同时还支持执行 notebook 中的代码并将执行结果保存到输出文件中。
安装
pip install nbconvert
用法
jupyter nbconvert [OPTIONS] notebook.ipynb
常见选项
-
--to <format>:指定输出格式。可以选择多种格式,包括:
- html:将 notebook 转换为 HTML 格式。
- pdf:将 notebook 转换为 PDF 格式。
- python:将 notebook 中的代码导出为 Python 脚本。
- markdown:将 notebook 转换为 Markdown 格式。
- notebook:将 notebook 转换为 .ipynb 格式。
- latex:将 notebook 转换为 LaTeX 格式。
--execute:在转换过程中执行 notebook 中的代码。如果不指定,默认只会转换文本和代码,不会执行代码。
--inplace:直接修改原始的 notebook 文件。如果不指定,nbconvert 会创建一个新的输出文件。
--output <filename>:指定输出文件的路径和名称。如果没有指定,nbconvert 会自动生成一个文件名。
--ExecutePreprocessor.kernel_name=<kernel>:指定使用的内核(如 python3),适用于 notebook 使用不同语言的场景。
--allow-errors:允许在执行 notebook 时忽略错误并继续执行。如果 notebook 中的代码单元出现错误,默认情况下执行会停止,添加此选项可以忽略错误。
示例:
- 后台运行notebook并覆盖之前的notebook文件
NOTEBOOK="/home/txm/gpu_txmdata/integration/scMIAAC_v0/experiments/02_imbalanced/zhu/01_1_get_adata_zhu_rna.ipynb"
jupyter nbconvert --execute --to notebook --inplace --ExecutePreprocessor.kernel_name=python3 --output $NOTEBOOK $NOTEBOOK
- 循环执行一系列文件
NOTEBOOKS=(
"/home/txm/gpu_txmdata/integration/scMIAAC_v0/experiments/02_imbalanced/zhu/01_1_get_adata_zhu_rna.ipynb"
# "/home/txm/gpu_txmdata/integration/scMIAAC_v0/experiments/02_imbalanced/zhu/02_2_get_adata_zhu_rna.ipynb"
# "/home/txm/gpu_txmdata/integration/scMIAAC_v0/experiments/02_imbalanced/zhu/03_3_get_adata_zhu_rna.ipynb"
# 继续添加更多的文件路径...
)
# 循环执行每个 notebook 文件
for NOTEBOOK in "${NOTEBOOKS[@]}"; do
jupyter nbconvert --execute --to notebook --inplace --ExecutePreprocessor.kernel_name=python3 --output $NOTEBOOK $NOTEBOOK
done
- 后台运行notebook并生成一个html格式的文件
NOTEBOOK="/home/txm/gpu_txmdata/integration/scMIAAC_v0/experiments/02_imbalanced/zhu/01_1_get_adata_zhu_rna.ipynb"
jupyter nbconvert --execute --to html --ExecutePreprocessor.kernel_name=python3 $NOTEBOOK