如何使用subprocess.call将输出重定向到stdout和文件?

时间:2016-02-15 15:23:43

标签: python

我在Python文件中调用subprocess。

for Testscript in ListofTesttoRun:
    subprocess.call(["python",Testscript], stdout=self.destfileoutput)

目前,输出会打印到结果文本文件中。如果使用subprocess.call,我想知道如何打印文件和屏幕。

1 个答案:

答案 0 :(得分:1)

使用subprocess.PIPE并将其内容写入两个文件对象。

import subprocess
import sys

process = subprocess.Popen(['ls', '-la'], stdout=subprocess.PIPE)
with open('outfile.txt', 'w') as outfile:
    for line in process.stdout:
        line = line.decode('utf-8')
        outfile.write(line)
        sys.stdout.write(line)