我试过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 回答