我试图重定向输出,并不时刷新一次以清除缓冲区。
刷新没有任何作用-甚至无法使用调试器输入该功能。
from io import BytesIO as StringIO
out = StringIO()
out.write("hi")
output = out.getvalue().strip()
assert output == "hi"
out.flush()
output = out.getvalue().strip()
assert output == ""
第二个断言失败,因为输出仍然是“ hi”。 flush()
什么也没做。
我怎么了?
答案 0 :(得分:2)
只需做一个更改,将 out.flush()替换为 out.truncate(0),即可正常工作,如下所示:
from io import BytesIO as StringIO
out = StringIO()
out.write("hi")
output = out.getvalue().strip()
assert output == "hi"
out.seek(0)
out.truncate(0)
output = out.getvalue().strip()
assert output == ""