python-3.x - Python3 子进程 check_output 对于某些命令返回空

标签 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 得到的正确字符串?

谢谢

最佳答案

出于某种原因,您的输出位于 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/

相关文章:

python - 是否有可能知道 chr 使用 Python 接受的最大数量?

python - Django:有没有办法序列化模型字段而不是模型?

python-3.x - Keras Inception-V3 模型预测还很遥远

python - 如何在 python 中一次将多个文件从本地服务器移动到 HDFS?

python - 无法使用 Popen() 可靠地打开子进程——OSError [Errno 14] Bad Address

python - subprocess.Popen 管道如何在 Python 中工作?

python-3.x - 使用 Python Win32 发送电子邮件。将图像添加到电子邮件正文不起作用

包含 3 个项目的 Python map

python - 如何将 python 的 subprocess.Call 方法输出重定向到文件而不是控制台?

python - 并行运行子进程