如何在Jupyter Notebook中动态运行同目录下的多个.py文件
在Jupyter Notebook中批量运行目录下的所有.py文件
%run *.py没法识别通配符,得用代码动态遍历目录里的.py文件再逐个执行,给你两种实用方法:
方法一:用os模块配%run魔法命令
先导入os模块筛选出所有.py文件,排除主程序本身避免循环运行,然后逐个执行脚本:
import os # 筛选当前目录下的.py文件,替换成你的主程序文件名(.ipynb或.py格式) py_files = [f for f in os.listdir('.') if f.endswith('.py') and f != '你的主程序文件名.ipynb'] # 遍历执行每个脚本 for file in py_files: %run "$file"
方法二:用exec直接执行脚本代码
不想用魔法命令的话,用Python内置的exec函数也能实现,这种方式会在当前命名空间里执行脚本代码:
import os py_files = [f for f in os.listdir('.') if f.endswith('.py') and f != '你的主程序文件名.ipynb'] for file in py_files: with open(file, 'r', encoding='utf-8') as f: exec(f.read())
额外小技巧
- 要按特定顺序运行脚本,给文件列表加排序即可:
py_files.sort() - 如果脚本分布在子目录里,用os.walk遍历所有层级的文件:
import os for root, _, files in os.walk('.'): for file in files: if file.endswith('.py') and file != '你的主程序文件名.ipynb': full_path = os.path.join(root, file) %run "$full_path"
内容的提问来源于stack exchange,提问作者Pedro Strapasson
相关产品推荐
相关产品推荐

