我是python3初学者。我正在尝试使用 python3 脚本获取 java 版本。检查文档后,我看到 subprocess.check_output 可能是我需要的。
output = subprocess.check_output(["java", "-version"])
print("Output is {}".format(output))
问题是我得到的输出是
Output is b''
为什么我没有得到我用 bash 得到的正确字符串?
谢谢
最佳答案
出于某种原因,您的输出位于 stderr
.您可以通过管道将其传递给返回值,如下所示:
output = subprocess.check_output(["java", "-version"], stderr=subprocess.STDOUT)
如果有人知道为什么它会转到
stderr
,我很高兴听到它。 ["python", "--version"]
例如,按预期工作。
关于python-3.x - Python3 子进程 check_output 对于某些命令返回空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24475195/