如何批量运行指定目录下的所有Jupyter Notebooks文件?
方案1:使用Jupyter自带nbconvert工具(无需额外安装依赖)
Jupyter官方自带的转换工具本身就支持运行Notebook并写入运行结果,不需要额外安装第三方包:
- 单个文件运行命令:
jupyter nbconvert --execute --to notebook --inplace 目标文件.ipynb
参数说明:--execute:执行Notebook内所有代码单元格--to notebook:指定输出格式为Notebook格式--inplace:直接将运行结果写入原文件,不需要生成新文件;如果需要保留原文件,删除该参数即可,会自动生成带运行结果的新Notebook文件
- 同目录下所有Notebook批量运行命令:
- Linux/macOS终端:
for f in *.ipynb; do jupyter nbconvert --execute --to notebook --inplace "$f"; done - Windows PowerShell:
Get-ChildItem *.ipynb | ForEach-Object { jupyter nbconvert --execute --to notebook --inplace $_.FullName }
- Linux/macOS终端:
方案2:使用papermill工具(适合需要运行日志、参数化运行的场景)
papermill是专门用于批量运行、参数化运行Jupyter Notebook的工具,支持自动记录运行状态、报错信息,不会修改原文件:
- 首先安装工具:
pip install papermill - 单个文件运行命令:
papermill 原文件.ipynb 带运行结果的输出文件.ipynb - 同目录下所有Notebook批量运行命令(运行后的文件统一加
run_前缀,和原文件区分):- Linux/macOS终端:
for f in *.ipynb; do papermill "$f" "run_$f"; done - Windows PowerShell:
Get-ChildItem *.ipynb | ForEach-Object { papermill $_.FullName ("run_" + $_.Name) }
- Linux/macOS终端:
注意事项
- 如果希望某个Notebook运行报错时不中断后续任务,可以在命令后加
--allow-errors参数即可跳过报错继续执行 - 批量操作前建议先备份所有原Notebook文件,避免异常情况导致文件损坏
内容的提问来源于stack exchange,提问作者Marte Valerio Falcone
相关产品推荐
相关产品推荐

