如何使用python将“java -version”的输出写入文本文件?

时间:2017-09-22 06:47:52

标签: python python-2.7 subprocess

我是新手,我想在文件文本中编写java版本的输出。

我在另一篇帖子中看到了这个:

import subprocess

with open('C:\Python27\ping.txt','w') as out:
    out.write(subprocess.check_output("ping www.google.com"))

这很有效,写了" ping www.google.com"到文本文件。

我想如果我只是改变了" ping www.google.com" to" java -version"一切都会解决。

像这样:

import subprocess

with open('C:\Python27\java.txt','w') as out:
    out.write(subprocess.check_output("java -version"))

但这对我没有用,这只是打印" java -version"的输出。控制台,并没有在文本文件中写入。

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

您可以尝试使用stderr:

from subprocess import Popen, PIPE, STDOUT

with open('C:\Python27\java.txt','w') as out:
  cmd = 'java -version'
  p = Popen(cmd, shell=True, stdin=PIPE, stdout=PIPE, stderr=PIPE)
  out.write(p.stderr.read())