我的Python代码派生了子进程,并且它会在标准输出(stdout)和标准错误(stderr)中打印出消息。我需要分别打印它们。
以下是我的代码,用于生成子进程并从中获取标准输出结果:
以下是我的代码,用于生成子进程并从中获取标准输出结果:
cmd = ["vsmake.exe", "-f"]
p = subprocess.Popen(cmd, stdout=subprocess.PIPE)
for line in iter(p.stdout.readline, ''):
print line,
sys.stdout.flush()
pass
p.wait()
如何修改代码以检查子进程是否通过stderr打印消息?
添加
我需要在子进程打印出内容时立即打印出stderr和stdout。并且这是跨平台的实现,因此它应该可以在Mac / Linux / PC上运行。
select()
也没有非阻塞I/O)。 - Sven Marnach