python:从函数内部的`print`获取输出

时间:2014-02-20 14:16:15

标签: python python-2.7

我正在使用一些函数库,其中一些函数可以打印我需要的数据:

def func():
   print "data"

如何调用此函数并将打印数据转换为字符串?

1 个答案:

答案 0 :(得分:7)

如果您无法更改这些功能,则需要重定向sys.stdout

>>> import sys
>>> stdout = sys.stdout
>>> import StringIO
>>> s = StringIO.StringIO()
>>> sys.stdout = s
>>> print "hello"
>>> sys.stdout = stdout
>>> s.seek(0)
>>> s.read()
'hello\n'