对于某些命令,Python3子进程check_output返回空

时间:2014-06-29 10:28:34

标签: python-3.x subprocess

我是python3初学者。我试图用python3脚本获取java版本。在我检查了文档后,我看到subprocess.check_output可能就是我需要的。

output = subprocess.check_output(["java", "-version"])
print("Output is {}".format(output))

问题是我得到的输出是

Output is b''

为什么我没有使用bash获得正确的字符串?

由于

1 个答案:

答案 0 :(得分:2)

由于某种原因,您的输出落在stderr。您可以将其传递给返回值,如下所示:

output = subprocess.check_output(["java", "-version"], stderr=subprocess.STDOUT)

如果有人知道为什么会进入stderr,我会很高兴听到它。例如,["python", "--version"]按预期工作。