
按指定顺序批量依次运行多个关联py文件
两种常用方案,按需选择,保证按顺序执行、文件间调用关联正常生效
方案一:写一个主控调度脚本(推荐,最简单)
新建一个 run_all.py 主文件,在里面按业务先后顺序,依次调用执行各个py脚本
1. 目录结构示例
plaintext
项目文件夹
├─ first.py # 第一个要运行
├─ second.py # 第二个
├─ third.py # 第三个
└─ run_all.py # 主控启动文件
2. 主控脚本代码 run_all.py
python
import subprocess
import os
# 按实际执行顺序填写文件名列表
run_order = [
"first.py",
"second.py",
"third.py"
]
# 获取当前脚本所在目录,保证路径统一
base_path = os.path.dirname(os.path.abspath(__file__))
for py_file in run_order:
file_full_path = os.path.join(base_path, py_file)
print(f"========== 开始执行:{py_file} ==========")
# 同步阻塞运行,上一个跑完才跑下一个
result = subprocess.run(
["python", file_full_path],
encoding="utf-8",
capture_output=False
)
print(f"========== {py_file} 执行结束 ==========\n")
print("全部脚本按顺序执行完毕!")
使用方法
1. 把所有关联py文件和 run_all.py 放在同一个文件夹
2. 修改 run_order 列表,严格按照你要求的运行先后顺序填写文件名
3. 直接运行 run_all.py ,就会挨个顺序执行,上一个脚本结束才启动下一个
方案二:代码内导入执行(适合函数/类互相调用)
如果文件之间是模块导入、函数调用关联,不是独立运行程序,用import顺序控制
示例
python
# run_all.py
# 按依赖顺序导入,顺序即为执行顺序
import first
import second
import third
# 如果文件内是主动执行逻辑,导入就会自动运行
# 若需要手动调用函数,在这里依次调用
# first.main()
# second.main()
# third.main()
注意:如果脚本里有 if __name__ == "__main__" 入口代码,单纯import不会触发,优先用方案一
方案三:批处理bat文件运行(不用写Python代码)
适合不想新增py文件,Windows双击直接启动
1. 项目文件夹内新建文本文件,后缀改成 start.bat
2. 写入内容,按顺序排布
bat
@echo off
echo 按顺序开始运行脚本
python first.py
echo 第一个脚本执行完成
python second.py
echo 第二个脚本执行完成
python third.py
echo 所有脚本运行完毕
pause
3. 双击 start.bat 即可按顺序跑完所有文件
关键注意事项
1. 路径统一
所有py文件必须放在同一个文件夹,避免相对路径、导入找不到文件报错
2. 执行阻塞等待
上面三种方式都是跑完一个再跑下一个,满足业务先后依赖,不会并行乱序
3. 环境一致
确保运行时使用同一个Python解释器,库依赖统一,避免模块缺失
4. 异常中断处理
如果某一个脚本报错终止,后续脚本默认不再执行;需要跳过报错继续执行,修改调度代码:
python
for py_file in run_order:
try:
# 执行代码
except Exception as e:
print(f"{py_file}运行出错,跳过继续下一个:{e}")
补充小技巧
- 调试时可以注释列表里部分文件名,单独测试某一段流程
- 如果有参数传递、文件读写关联,保证前序脚本生成的数据文件,后序能正常读取即可
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。