在python中重定向robot.run的robot输出

在python中重定向robot.run的robot输出,python,robotframework,Python,Robotframework,我想获取robot.run()的输出,并阻止它打印到控制台。我已经尝试将sys.stdout重新分配给一个文件,但是我仍然在控制台上得到输出。以下是我使用的代码: import robot import sys old = sys.stdout sys.stdout = open('output.txt', 'w+') robot.run('test.txt') 理想情况下,我希望将输出捕获为字符串而不是文件,但除了控制台之外,我无法将其放到任何地方。引用以下内容: 要捕获stdout和/或s

我想获取robot.run()的输出,并阻止它打印到控制台。我已经尝试将sys.stdout重新分配给一个文件,但是我仍然在控制台上得到输出。以下是我使用的代码:

import robot
import sys
old = sys.stdout
sys.stdout = open('output.txt', 'w+')
robot.run('test.txt')
理想情况下,我希望将输出捕获为字符串而不是文件,但除了控制台之外,我无法将其放到任何地方。

引用以下内容:

要捕获stdout和/或stderr流,请将打开的文件对象作为 分别使用特殊关键字参数
stdout
stderr

例如:

with open('output.txt', 'w') as stdout_file:
    robot.run('test.txt', stdout=stdout_file)