2

などの方法を試しos.popenました。しかし、それは私にはうまくいかないようです。'echo xxxx'コマンドとの間に何か違いがあるかどうか疑問に思っています.Pythonコードで出力'java -version'を取得するにはどうすればよいですか.'java -version'

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印刷することです。(より良い)を使用してコマンドのを確認するか、手動でリダイレクトすることができます:stderrstdoutstderrsubprocess.Popenstdoutstderr

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 に答える