如何创建可依次运行三个Python脚本且响应脚本变更的.exe/.bat文件
解决方案:动态运行Python脚本的批处理与可执行文件
方法一:使用批处理文件(.bat)
这是最直接的方案,能实时响应Python脚本的修改,无需额外打包工具:
- 在三个Python脚本的同一目录下,新建一个文本文件,将后缀改为
run_scripts.bat - 打开该文件,粘贴以下内容:
@echo off echo 开始运行Create_Image.py... python Create_Image.py if errorlevel 1 ( echo Create_Image.py运行出错,终止流程 pause exit /b 1 ) echo 开始运行Add_PNG.py... python Add_PNG.py if errorlevel 1 ( echo Add_PNG.py运行出错,终止流程 pause exit /b 1 ) echo 开始运行Combine.py... python Combine.py if errorlevel 1 ( echo Combine.py运行出错,终止流程 pause exit /b 1 ) echo 所有脚本运行完成! pause
- 保存文件后,双击即可按顺序运行脚本。修改Python脚本后,重新运行该批处理文件就会生效。
注意:如果你的Python未添加到系统环境变量,将脚本中的
python替换为Python的完整安装路径,例如C:\Python310\python.exe
方法二:创建动态可执行文件(.exe)
之前的静态exe是将Python脚本打包进了可执行文件,导致修改原脚本无法生效。下面的方法会制作一个"启动器"exe,它会调用外部的Python脚本,从而实时响应修改:
- 新建一个名为
launcher.py的启动脚本,内容如下:
import subprocess import sys import os # 获取当前启动器所在目录 script_dir = os.path.dirname(os.path.abspath(__file__)) # 按顺序定义要运行的脚本 target_scripts = ["Create_Image.py", "Add_PNG.py", "Combine.py"] for script_name in target_scripts: script_path = os.path.join(script_dir, script_name) print(f"开始运行 {script_name}...") # 调用Python解释器运行脚本 run_result = subprocess.run([sys.executable, script_path], check=False) if run_result.returncode != 0: print(f"{script_name} 运行失败,终止流程") input("按回车键退出...") sys.exit(1) print("所有脚本运行完成!") input("按回车键退出...")
- 使用PyInstaller打包这个启动器(若未安装PyInstaller,先执行
pip install pyinstaller):
pyinstaller --onefile launcher.py
- 打包完成后,将生成的
launcher.exe和三个Python脚本放在同一目录下。运行该exe时,它会读取最新的Python脚本内容执行,修改脚本后无需重新打包exe。
内容的提问来源于stack exchange,提问作者James Jamie
相关产品推荐
相关产品推荐

