我正在执行python命令,
proc = subprocess.Popen(cmd,
shell=False,
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
)
执行命令后我想读取stderr和stdout
res = proc.stderr.read()
在res我期待任何错误或''
但是读取stderr的时间是无限的,所以请不要继续读取它所得到的值。它会在无限时间内完成。
一段时间后,相同的代码工作正常,但不知道为什么它现在不读stderr。
任何提示,谢谢。
答案 0 :(得分:1)
而不是显式调用stderr.read(),只需在proc上进行通信。
output, error = proc.communicate()
通过这种方式,您可以通过与流程进行通信来获得输出和错误。