【问题标题】:How to get 'java -version' output through python如何通过python获取'java -version'输出
【发布时间】:2012-09-25 08:39:30
【问题描述】:

我尝试了os.popen 之类的方法。但这似乎对我不起作用。我想知道命令'echo xxxx''java -version' 之间是否有什么不同,以及如何使用python 代码获得'java -version' 输出。

【问题讨论】:

标签: python command


【解决方案1】:

不同之处在于java -version 打印到stderr 而不是stdout。您可以使用subprocess.Popen(更好)检查命令的stderr,或者手动将stdout重定向到stderr

java -version 2>&1

【讨论】:

    【解决方案2】:
    import subprocess
    sp = subprocess.Popen(["java", "-version"], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    print sp.communicate()
    print sp.wait()
    

    才是真正要走的路。

    一个更简单的方法可能是

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

    【讨论】:

      【解决方案3】:

      是的,不同之处在于 java -version 转到 stderr 流。试试popen3 http://docs.python.org/library/popen2.html

      【讨论】:

      • "自 2.6 版起已弃用:此模块已过时。使用 subprocess 模块。"
      • 那又怎样,还是常用的。很多人都使用 os.popen,我怀疑它会在 2.x 分支中消失(无论如何,它现在几乎已经死了)。
      • 如果某些东西已被弃用,我不会推荐它。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-18
      • 2022-07-25
      • 1970-01-01
      • 2017-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多