python - 我可以将标准输出重定向到某种字符串缓冲区吗?

标签 python stream stdout redirect

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

我知道 stdout 可以重定向到任何常规文件:

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

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

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

最佳答案

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()

关于python - 我可以将标准输出重定向到某种字符串缓冲区吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1218933/

相关文章:

python - 如何从 pytest 注入(inject) pygame 事件?

python - 从 pyodbc execute() 语句返回列名

python - 使函数在 help() 函数中的参数有省略号

android - HttpURLConnect - 使用 GSON 流的带有 JSON 的 Http PUT 不发送内容

Python:新浏览器对象上的 selenium-chromedriver 错误

C++ 在 stdin 上写入数据并从 stdout 获取输出

python - 读取txt文件中的特定字段并将它们存储在numpy数组中

javascript - 在 Node.js 中将 Buffer 转换为 ReadableStream

c# - .Net StreamWriter.BaseStream,这个定义是什么意思? "Gets the underlying stream that interfaces with a backing store."

python - 如何实现标准输入、标准输出包装器?