我是新手,我想在文件文本中编写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"的输出。控制台,并没有在文本文件中写入。
任何人都可以帮助我吗?
答案 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())