在 python 中重定向来自 robot.run 的机器人输出

redirect robot output from robot.run in python

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

import robot
import sys
old = sys.stdout
sys.stdout = open('output.txt', 'w+')
robot.run('test.txt')

理想情况下,我想以字符串而不是文件的形式捕获输出,但我无法将其传输到控制台以外的任何地方。

引用 documentation:

To capture stdout and/or stderr streams, pass open file objects in as special keyword arguments stdout and stderr, respectively.

例如:

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