1. ホーム
  2. python

[解決済み] stdoutをある種の文字列バッファにリダイレクトすることはできますか?

2022-04-26 08:26:28

質問

Pythonの ftplib を使って小さな FTP クライアントを書いているのですが、パッケージに含まれるいくつかの関数が文字列出力を返さずに stdout . をリダイレクトしたいのですが stdout をオブジェクトに変換し、そこから出力を読み取ることができるようになります。

知っている stdout で通常のファイルにリダイレクトすることができます。

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

しかし、私はローカルドライブを使わない方法がいいと思います。

のようなものを探しています。 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()