2

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

4

3 回答 3

6
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)
于 2012-09-25T09:05:51.900 回答
2

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

java -version 2>&1
于 2012-09-25T08:42:59.943 回答
-2

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

于 2012-09-25T08:41:59.597 回答