好。所以大概一个例子就是说明这个问题抑制打印为标准输出蟒蛇
所以我有这样的一个好办法:
if __name__=="__main__"
result = foobar()
sys.stdout.write(str(result))
sys.stdout.flush()
sys.exit(0)
现在这个剧本正在从一个叫做红宝石脚本..基本上它解析了那里的结果。 但是foobar()有很多打印语句..并且stdout也刷新了所有这些打印。 有没有一种方法(除了记录方法)我可以修改这里的东西,自动抑制这些打印并刷新这个结果? 谢谢
真棒..只是什么:) – Fraz 2012-03-30 20:04:05
使用'sys.stdout = open(os.devnull,'w')'而不是'StringIO()'怎么样? – ovgolovin 2012-03-30 20:07:15
@ovgolovin - 绝对合理,如果没有你可能需要输出的期望。使用StringIO,您可以在重置“stdout”的原始值之前根据需要检索它。 – 2012-03-30 20:09:40