2010-04-30 61 views
1

我一直在寻找通过谷歌和SO的东西,可以帮助我解决这个问题,但我遇到了一个块。我对Python有点新,但我正在寻找一种方法来运行多个应用程序,这些应用程序将在后台连续运行。分叉在Python子进程下的多个应用程序

例如,我需要4个应用程序来启动一个param -appnum设置为不同的值。我想用python来计算,然后启动一个将继续运行的新应用程序。

我假设我会使用子过程,但我感觉有点不知所措的文件。

我也打算让应用打印出数字序列,并且希望将其重定向到一个文件。我注意到一些关于这个问题的SO问题,但我对于该怎么做有点困惑。

回答

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模块。

+0

+1同意 - 开始简单! – 2010-04-30 22:38:04

+1

请注意'os.popen'不赞成使用'subprocess'模块。 – 2010-04-30 23:32:52

+0

@Mike Graham:你说得对,编写代码肯定有更多的Pythonic方法。我想做一些尽可能简单的事情来阅读,因为OP表明他是Python的新手。我可能写过使用列表理解而不是实际上使用'append()'。 – 2010-04-30 23:59:52