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