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

发布于 2021-02-02 23:18:24

我使用python ftplib编写了一个小型FTP客户端,但程序包中的某些功能不会返回字符串输出,而是输出到stdout。我想重定向stdout到一个我将能够从中读取输出的对象。

我知道stdout可以使用以下命令将其重定向到任何常规文件中:

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

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

我正在寻找类似BufferedReaderJava的东西,可用于将缓冲区包装到流中。

关注者
0
被浏览
83
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。
    from cStringIO import StringIO # Python3 use: from io import StringIO
    import sys
    
    old_stdout = sys.stdout
    sys.stdout = mystdout = StringIO()
    
    # blah blah lots of code ...
    
    sys.stdout = old_stdout
    
    # examine mystdout.getvalue()
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看