我正在使用一个函数库,其中一些函数会打印出我需要的数据:
def func():
print "data"
我该如何调用这个函数并将打印出的数据存储到一个字符串中?
我正在使用一个函数库,其中一些函数会打印出我需要的数据:
def func():
print "data"
如果您无法更改这些函数,您将需要重定向 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'
return "data"
,这是唯一可行的方法。除非你想捕获另一个Python脚本的输出,那么你可以使用x = subprocess.Popen("python script.py", shell=True")
,然后使用x.stdout.read()
。可能(我是说可能...只是一念之间)可以使用eval()
调用函数并捕获输出。但不建议这样做。 - Torxedprint
函数并将其收集到其他地方的数据。 - tobias_kdis.dis()
也使用了print
;请参阅链接的重复内容,了解如何解决这个问题。 - Martijn Pieters