0
我已经看到了围绕这个话题的几个问题,但都没有为我工作。我需要的是得到完整输出和错误一subprocess.Popen([...],stdout=subprocess.PIPE)
的保持,这一切在一次写入文件,例如:如何读取标准输出和标准错误并使用子进程Popen一次全部保存?
import tempfile
import subprocess
stattmpfile = tempfile.NamedTemporaryFile(suffix=".log",prefix="status",delete=False)
proc = subprocess.Popen([mycommand, myparams], stdout=subprocess.PIPE)
while proc.poll() is None:
output = proc.stdout.readline()
statusfile.write(output)
output = proc.communicate()[0]
statusfile.write(output)
statusfile.close()
在这个例子中,我只得到标准的第一线输出,没有别的。