
既然是需要严格按顺序执行(比如必须等第一个文件彻底跑完,第二个才能开始),最推荐你使用 Python 自带的 subprocess 模块来写一个“总指挥”脚本。
这里有三种非常好用的方法,你可以挑一个最顺手的:
方法一:写一个 run_all.py(最推荐,跨平台通用)
这种方法最稳健,不管你是 Windows 还是 Mac,只要运行这一个文件,它就会乖乖地按顺序把你的脚本一个个跑完。
1. 在你的文件夹里新建一个文件,命名为 run_all.py。
2. 把下面的代码复制进去,把文件名换成你自己的:
import subprocess
import sys
在这里按顺序写上你要运行的文件名
scripts = [
"1_数据预处理.py",
"2_模型训练.py",
"3_结果导出.py"
]
for script in scripts:
print(f"🚀 正在开始运行: {script} ...")
# check_call 会等待当前脚本运行结束后,再继续下一个
# 如果中间某个脚本报错,程序会自动停止,不会继续往下跑
try:
subprocess.check_call([sys.executable, script])
print(f"✅ {script} 运行成功!n")
except subprocess.CalledProcessError:
print(f"❌ {script} 运行出错,程序已终止!")
sys.exit(1)
print("🎉 所有脚本均已按顺序执行完毕!")
3. 在终端里运行它:python run_all.py。
方法二:用命令行一行搞定(最快,不用写新文件)
如果你不想新建文件,可以直接在终端(黑框框)里用命令把它们串起来。
* 如果你是 Windows (CMD 或 PowerShell):
用 & 符号连接,它会按顺序执行:
python 1.py & python 2.py & python 3.py
* 如果你是 Mac 或 Linux:
用 && 符号连接(它的好处是:如果前一个报错了,后面的就不会执行,更安全):
python 1.py && python 2.py && python 3.py
方法三:直接导入(仅适用于没有 if name == "main": 的简单脚本)
如果你的那些 .py 文件写得很简单(没有把主逻辑包在 if name == "main": 下面),你也可以直接在 run_all.py 里用 import:
import 脚本1的名字
import 脚本2的名字
import 脚本3的名字
注意:这种方法有坑,因为 Python 导入模块时可能会缓存,如果你反复修改脚本1并反复运行 run_all,有时候脚本1的改动可能不会生效。所以强烈建议用方法一。
💡 小提示:
既然你的文件是相互关联的,使用方法一时,请确保你打开终端的路径(也就是你输入 python run_all.py 时所在的文件夹),和你这些 .py 文件所在的文件夹是同一个,这样它们互相找数据才不会迷路哦!
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。