我有12个程序,我打算同时运行。有没有什么方法可以通过一个程序运行所有这些程序,这些程序在构建时运行12个程序?
我使用的是sublime,程序是python。
答案 0 :(得分:2)
如果您只想逐批执行程序,可以在bash脚本中执行。假设它们是同一文件夹中的可执行文件,您可以拥有包含以下内容的.sh
文件:
#!/bin/bash
python ./my_app1.py &
python ./my_app2.py &
python ./my_app3.py
如果脚本本身顶部有#!/usr/bin/env python
标识解释器,您可以对其进行chmod +x
,并将runner.sh
文件转换为:
#!/bin/bash
./my_app1.py &
./my_app2.py &
./my_app3.py
另一方面,如果你想从python脚本中执行此操作,可以使用:
import subprocess
import os
scripts_to_run = ['my_app1.py', 'my_app2.py', 'my_app3.py']
for s in scripts_to_run:
subprocess.Popen([os.path.join(os.getcwd(), s)])
注1 :不要忘记在第一行的每个脚本中加入#!/usr/bin/env python
。
注意2 :使用subprocess.Popen()
而不是subprocess.call()
非常重要,因为后者是一个阻止函数,它会在继续之前等待应用程序完成。使用subproces.Popen()
可以获得并发执行。