多线程Linux工具命令?

时间:2014-09-22 09:14:05

标签: python multithreading command-line

我想创建一个脚本,它将同时从shell运行两个基于Linux的工具,并基于将它们的输出写入单个结果文件?

我对os.fork之类的事情做过一些研究并且非常坦诚,并且只是在寻找一些指导。

我目前正在使用subprocess.call([command here])运行一个命令并将其输出到文件中,但我只是想知道如何同时运行两个工具,例如。

subprocess.call([command 1 >> results.txt])
subprocess.call([command 2 >> results.txt])

这两种情况同时发生。

1 个答案:

答案 0 :(得分:1)

首先,如果您希望以Popen块的形式同时运行这些内容,则需要调用call而非call,直到流程完成为止。您还可以使用stdout参数将输出通过管道传递给像object这样的文件。

with open("results.txt", "w") as results:
    p1 = subprocess.Popen(["command1"], stdout=results)
    p2 = subprocess.Popen(["command2"], stdout=results)
    p1.wait()
    p2.wait()