gpt4 book ai didi

python - subprocess.Popen 的管道输出到文件

转载 作者:IT老高 更新时间:2023-10-28 20:37:19 43 4
gpt4 key购买 nike

我需要使用 subprocess.Popen 启动多个长时间运行的进程,并希望从 stdoutstderr每个都自动通过管道传输到单独的日志文件。每个进程将同时运行几分钟,我希望将两个日志文件(stdoutstderr)per process 作为进程写入运行。

我是否需要在循环中对每个进程不断调用 p.communicate() 以更新每个日志文件,或者有什么方法可以调用原始 Popen code> 命令,以便 stdoutstderr 自动流式传输到打开文件句柄?

最佳答案

您可以将 stdoutstderr 作为参数传递给 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)

例如

>>> 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>
>>>

关于python - subprocess.Popen 的管道输出到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2331339/

43 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com