我使用Python脚本调用在生成工具和编译器之后调用的批处理文件。我使用以下命令将其保存到输出文件中:
os.system("run.bat >output.txt")
问题是警告和编译器错误未保存在此输出文件中 - 它们仅显示在Python控制台上。
如何将输出保存到文件中?
答案 0 :(得分:0)
你可以做几件事:
subprocess
系列获取stdout和stderr文件的句柄os.system
来电中使用stderr的重定向。第一个更pythonic,并允许你的python脚本知道错误。
答案 1 :(得分:0)
将stderr重定向到同一文件的简单方法如下:
os.system("run.bat > output.txt 2>&1")
答案 2 :(得分:0)
不要使用os.system~你没有错误处理,更糟糕的是,如果发生错误你没有指示。
我会像这样解决这个问题:
from subprocess import Popen, PIPE
proc = Popen(['run.bat'], stdout=PIPE, stderr=PIPE)
result = proc.communicate()
with open('output.txt', 'w') as output:
output.write(result[0])
with open('errors.txt', 'w') as errors:
errors.write(result[-1])