gpt4 book ai didi

python - 如何在 Windows 上的 python 中测试子进程的 stdout、stderr

转载 作者:行者123 更新时间:2023-11-30 23:09:51 24 4
gpt4 key购买 nike

>>> import subprocess
>>> f = open('txt', 'w+')
>>> p = subprocess.Popen(['dir'],stdout=f,stderr=f, shell=True)
>>> p.communicate()
(None, None) # stdout, stderr are empty. Same happens if I open a win32 gui app instead of python (don't think win32 gui apps set a stdout/stderr)

我想检索子进程的stdout或stderr来测试它们的一些特征(不是当前的sys.__stdout__)。我如何从 python 解释器中执行此操作?

最佳答案

我认为您正在寻找 subprocess.PIPE

示例

>>> from subprocess import Popen, PIPE
>>> process = subprocess.Popen(['ls'], stdout = PIPE, stderr = PIPE, shell = True )
>>> process.communicate()
('file\nfile1\nfile2, '')

可以看出,

process.communicate()[0]

是命令的标准输出,

process.communicate()[1] 

是标准错误

关于python - 如何在 Windows 上的 python 中测试子进程的 stdout、stderr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30953738/

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