如何通过python0.py同时运行python1.py、python2.py、python3.py?
同步运行多个Python脚本的解决方案
你之前的两种方法问题出在这:
- 第一种用
os.startfile:这个函数只是打开文件(比如用默认编辑器打开脚本),不会执行脚本里的代码,所以自然看不到运行效果。 - 第二种用
subprocess.run:这个函数是阻塞式的,必须等当前脚本执行完,才会启动下一个,所以三个脚本是串行执行,不是同步。
要实现同步运行,用subprocess.Popen就可以,它会启动子进程但不等待结束,能让三个脚本同时跑起来:
import subprocess # 启动三个子进程,同步运行三个脚本 proc1 = subprocess.Popen(["python", "python1.py"]) proc2 = subprocess.Popen(["python", "python2.py"]) proc3 = subprocess.Popen(["python", "python3.py"]) # 可选:如果需要python0.py等所有脚本跑完再退出,加上下面三行 proc1.wait() proc2.wait() proc3.wait()
如果担心不同系统的Python命令不一致(比如Linux/macOS用python3,Windows用python),可以用sys.executable获取当前Python解释器的路径,避免环境问题:
import subprocess import sys proc1 = subprocess.Popen([sys.executable, "python1.py"]) proc2 = subprocess.Popen([sys.executable, "python2.py"]) proc3 = subprocess.Popen([sys.executable, "python3.py"]) proc1.wait() proc2.wait() proc3.wait()
内容的提问来源于stack exchange,提问作者Nischinta Sharma
相关产品推荐
相关产品推荐

