您说您的脚本“调用了一堆函数”,所以我假设它们是可从您的程序访问的python函数。我还假设您正在使用print
所有这些函数生成输出。在这种情况下,您可以替换sys.stdout
为StringIO.StringIO
,它将拦截您正在编写的所有内容。然后,您最终可以.getValue
在您的方法上调用方法,StringIO
以获取已发送到输出通道的所有内容。对于使用写入的子流程模块的外部程序,这也将起作用sys.stdout
。
这是一种便宜的方法。我建议您使用该logging
模块进行输出。您将对其输出的方式有更多的控制,也可以更轻松地对其进行控制。