我正在尝试将函数的输出存储到Python中的文件中,我想做的是这样的:
def test():
print("This is a Test")
file=open('Log','a')
file.write(test())
file.close()
但是当我这样做时,我收到此错误:
类型错误:参数 1 必须是字符串或只读字符缓冲区,
不是没有
PD:我正在尝试为一个我无法修改的函数执行此操作。
每当any操作需要成对执行,请使用上下文管理器。
在这种情况下,使用contextlib.redirect_stdout
:
with open('Log','a') as f:
with contextlib.redirect_stdout(f):
test()
编辑:如果你想要它作为字符串,请使用io.StringIO
:
f = io.StringIO()
with contextlib.redirect_stdout(f):
test()
s = f.getvalue()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)