我有一个打印功能。如何将其输出转换为字符串?
注意:我无法更改功能代码。
def f():
print('hello world')
# do something
assert x == 'hello world\n'
我需要这个,因为spark数据框具有方法explain
,可以打印有关执行计划的信息。但是我需要在程序中将该信息作为字符串。
>>> df.explain()
== Physical Plan ==
Scan ExistingRDD[age#0,name#1]
答案 0 :(得分:0)
我在https://stackoverflow.com/a/22434594/4204843
处找到了解决方案def f():
print('hello world')
import io
from contextlib import redirect_stdout
with io.StringIO() as buf, redirect_stdout(buf):
f()
x = buf.getvalue()
assert x == 'hello world\n'