从一个程序运行多个程序

0 投票
1 回答
1179 浏览
提问于 2025-04-17 23:47

我有12个程序想要同时运行。有没有办法通过一个程序来启动这12个程序,也就是说我只需要运行这个程序,就能同时运行这12个程序?

我在用Sublime这个编辑器,程序是用Python写的。

1 个回答

3

如果你只是想把程序一个接一个地执行,可以用一个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() 是很重要的,因为后者是一个阻塞函数,会等应用程序执行完再继续。而使用 subprocess.Popen() 可以让多个程序同时执行。

撰写回答