我可以将python中的stdout重定向到某种字符串缓冲区吗?

我可以将python中的stdout重定向到某种字符串缓冲区吗?

我用蟒蛇的ftplib编写一个小型FTP客户端,但是包中的一些函数不返回字符串输出,而是打印到stdout..我想重定向stdout可以读取输出的对象。

我知道呀stdout可以将以下内容重定向到任何常规文件中:

stdout = open("file", "a")

但我更喜欢不使用本地驱动器的方法。

我在找像BufferedReader在Java中,可以用来将缓冲区包装到流中。


智慧大石
浏览 965回答 3
3回答

慕桂英4014372

from cStringIO import StringIO # Python3 use: from io import StringIOimport sys old_stdout = sys.stdout sys.stdout = mystdout = StringIO()# blah blah lots of code ...sys.stdout = old_stdout# examine mystdout.getvalue()

慕桂英546537

的确有重定向_stdout()函数在Python3.4中:import iofrom contextlib import redirect_stdoutwith io.StringIO() as buf, redirect_stdout(buf):     print('redirected')     output = buf.getvalue()这是代码示例,演示如何在较早的Python版本上实现它。.
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python