0
我需要幾個輸出從stdout
重定向例如:重定向stdtout在Python 2.x的
def main(dict):
result = []
real_stdout = sys.stdout
fake_stdout = io.BytesIO()
sys.stdout = fake_stdout
print ("""long
string""")
sys.stdout = real_stdout
output_string = fake_stdout.getvalue()
result["1"] = output_string[:-1]
#fake_stdout.flush()
real_stdout = sys.stdout
sys.stdout = fake_stdout
print ("""new long string""")
sys.stdout = real_stdout
output_string = fake_stdout.getvalue()
fake_stdout.close()
sys.stdout = real_stdout
fake_stdout.close()
result["2"] = output_string[:-1]
return result
我想到的是,輸出將是
[{"1", 'long\n string'}, {"2", 'new long string'}]
,但我得到
[{"1", 'long\n string'}, {"2", 'long\n stringnew long string'}]
如何在第二次重定向之前清潔fake_stdout
?
是否是一種很好的重定向方式,io.BytesIO()
可以用來保存從stdout
重定向的長度字符串?
我不能使用capture_output from IPython.utils.io import