在Python子进程中分叉多个应用程序
我一直在谷歌和StackOverflow上寻找解决办法,但遇到了一些困难。我对Python还不太熟悉,但我想找到一种方法,让多个应用程序在后台持续运行。
举个例子,我需要启动4个应用程序,每个应用的参数 -appnum 设置为不同的值。我想用Python来计数,然后启动一个新的应用程序,让它继续运行。
我本以为可以使用subprocess这个模块,但看文档的时候感觉有点无从下手。
我还打算让应用程序输出一串数字,并希望把这些输出重定向到一个文件里。我注意到一些StackOverflow上的问题提到了这个,但我对该怎么做有点困惑。
1 个回答
1
一个简单的开始方法是使用 os.popen()
,像这样:
import os
subprogs = [None] * 4
for i in range(4):
subprogs[i] = os.popen("app -appnum " + i, "r")
从这里,你可以像读取文件一样,从每个 subprog[i]
中读取内容,这样就能捕获 app
程序的输出。
需要注意的是,虽然文档上说这个函数已经不推荐使用了,但它在很多情况下仍然可以正常工作。当你对 os.popen()
的局限性更熟悉后,可以去了解一下 subprocess
模块。