我需要推出一批具有长期运行的进程subprocess.Popen,并希望有stdout与stderr从各自动管道分离日志文件.每个进程将同时运行几分钟,并且我希望在进程运行时将每个进程写入两个日志文件(stdout和stderr).
我需要不断地调用p.communicate(),以便更新每个日志文件上的每个进程在循环,或者是有一些方法来调用原有的Popen命令,以便stdout和stderr自动传输到打开的文件句柄?
Joh*_*ooy 74
您可以传递stdout和stderr作为参数Popen()
subprocess.Popen(self, args, bufsize=0, executable=None, stdin=None, stdout=None,
stderr=None, preexec_fn=None, close_fds=False, shell=False,
cwd=None, env=None, universal_newlines=False, startupinfo=None,
creationflags=0)
Run Code Online (Sandbox Code Playgroud)
例如
>>> import subprocess
>>> with open("stdout.txt","wb") as out, open("stderr.txt","wb") as err:
... subprocess.Popen("ls",stdout=out,stderr=err)
...
<subprocess.Popen object at 0xa3519ec>
>>>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
55728 次 |
| 最近记录: |