我希望并行运行两个可执行文件 a.exe 和 b.exe,一个接一个调用。
当我尝试时,
os.system('a.exe')
#some code
os.system('b.exe')
只有在我杀死 a.exe 之后,b.exe 才开始运行? 为什么会这样? 如何同时运行两者? (我需要做多线程吗?) 注:我在Windows平台
最佳答案
如果我们忽略异常,那么同时运行多个程序就很简单了:
#!/usr/bin/env python
import subprocess
# start all programs
processes = [subprocess.Popen(program) for program in ['a', 'b']]
# wait
for process in processes:
process.wait()
参见 Python threading multiple bash subprocesses?
如果您想要在任何程序启动失败时停止之前启动的进程:
#!/usr/bin/env python3
from contextlib import ExitStack
from subprocess import Popen
def kill(process):
if process.poll() is None: # still running
process.kill()
with ExitStack() as stack: # to clean up properly in case of exceptions
processes = []
for program in ['a', 'b']:
processes.append(stack.enter_context(Popen(program))) # start program
stack.callback(kill, processes[-1])
for process in processes:
process.wait()
关于python - 在 Python 中与 os.system() 并行运行两个可执行文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36942980/