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()
在這個例子中,我只得到標準的第一線輸出,沒有別的。