编程语言
首页 > 编程语言> > python-subprocess.Popen:stdin,stdout,stderr的不同缓冲?

python-subprocess.Popen:stdin,stdout,stderr的不同缓冲?

作者:互联网

我需要将Popen调用中的stderr流设置为行缓冲.我发现了bufsize参数,但它适用于所有stdin,stdout和stderr文件.

如何将每个文件的缓冲设置为不同?

解决方法:

我假设您将PIPE用于stderr?在这种情况下,我认为您可以执行以下操作:

p = subprocess.Popen(..., stderr=subprocess.PIPE)
fd = p.stderr.fileno()
my_stderr = os.fdopen(os.dup(fd), 'rU', new_bufsize)
os.close(fd)
# use my_stderr from here on

标签:python-3-x,popen,buffering,python
来源: https://codeday.me/bug/20191102/1993744.html