如何处理stderr进程?
proc = subprocess.Popen('ll'.split(), stdout=subprocess.PIPE)
for i in proc.stdout:
print(i)
现在我正在流式传输输出,但是我不确定如何正确处理可能发生的潜在错误。
我想使用out, err = proc.communicate()
,但是我的out
可能是一个非常非常长的字符串
答案 0 :(得分:1)
如果您知道需要什么错误消息,那么答案是将subprocess.STDOUT
传递给stderr
的{{1}}参数,以便您的stderr消息在stdout流中: / p>
Popen
或者,如果您不关心stdout消息,那么只需遍历stderr即可:
proc = subprocess.Popen('ll'.split(), stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
for i in proc.stdout:
print(i)
# check for error message strings and do something with them