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

Wea*_*Fox 8 python python-2.7

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

def func():
   print "data"
Run Code Online (Sandbox Code Playgroud)

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

Tim*_*ker 8

如果您无法更改这些功能,则需要重定向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'
Run Code Online (Sandbox Code Playgroud)