subprocess.run无法在文件中打印多行输出

时间:2019-05-20 13:27:23

标签: python python-3.x

我正在使用subprocess.run来运行命令并将输出打印到文件中。

我能够为'python --version'打印正确的输出,因为答案是'Python 3.6.5',但是当我为'java -version'运行相同的命令时,文本文件中没有输出,但是它反映在控制台中。

也许是因为'java -version'的输出分为三行!

import subprocess
import os
import sys
sys.stdout = open('outputCS.txt','wt')

result = subprocess.run('python --version', stdout=subprocess.PIPE)
print(result.stdout.decode('utf-8'))

1 个答案:

答案 0 :(得分:0)

import subprocess

f = open("stuff", "wt")
subprocess.run(['python', '--version'], stdout=f, stderr=f)
subprocess.run(['java', '-version'], stdout=f, stderr=f)