我想创建一个脚本,它将同时从shell运行两个基于Linux的工具,并基于将它们的输出写入单个结果文件?
我对os.fork
之类的事情做过一些研究并且非常坦诚,并且只是在寻找一些指导。
我目前正在使用subprocess.call([command here])
运行一个命令并将其输出到文件中,但我只是想知道如何同时运行两个工具,例如。
subprocess.call([command 1 >> results.txt])
subprocess.call([command 2 >> results.txt])
这两种情况同时发生。
答案 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()