Jupyter notebook批量运行
时间: 2025-02-18 12:52:49 浏览: 137
### 如何在 Jupyter Notebook 中批量执行代码或笔记本
#### 使用魔法命令 `%run` 进行单文件或多文件运行
为了在 Jupyter Notebook 中批量执行多个 Python 文件,可以利用内置的魔法命令 `%run` 来依次调用各个 `.py` 文件。例如,如果存在两个分别命名为 `script1.py` 和 `script2.py` 的脚本,则可以通过如下方式逐一加载并执行这些脚本[^4]:
```python
%run script1.py
%run script2.py
```
#### 利用 IPython 内核特性自动连续执行单元格
对于希望在同一份 Jupyter Notebook 文档内实现多段代码按顺序自动化执行的情况,只需确保各代码片段被放置于不同的单元格之中,并且按照预期执行次序排列即可。当按下 Shift+Enter 键时,默认行为即是从当前选中的单元格开始向下逐个触发后续所有未被执行过的单元格内的指令。
#### 创建自定义函数封装批处理逻辑
针对更复杂的场景,比如需要循环读取目录下所有的 `.ipynb` 笔记本文件并对它们做统一操作(如参数传递、环境配置同步等),则建议编写一段专门负责管理此类任务的小型程序。下面给出了一种可能的做法:
```python
import os
from nbconvert import ScriptExporter
from subprocess import call
def batch_run_notebooks(directory):
exporter = ScriptExporter()
for file_name in os.listdir(directory):
if file_name.endswith(".ipynb"):
full_path = os.path.join(directory, file_name)
# Convert notebook to .py and save it temporarily
script, _ = exporter.from_filename(full_path)
py_file = f"{os.path.splitext(file_name)[0]}.py"
with open(py_file, 'w') as f:
f.write(script)
try:
# Run the converted python script
result = call(f'ipython {py_file}', shell=True)
if result != 0:
print(f"Error running {file_name}")
finally:
# Clean up temporary files after execution
os.remove(py_file)
batch_run_notebooks('./notebooks_folder')
```
此方法能够遍历指定路径下的所有符合条件的 Jupyter Notebook 文件,先转换成纯文本形式的 Python 脚本再借助 IPython 解释器完成实际运算过程[^3].
阅读全文
相关推荐


















