標準出力を文字列バッファにリダイレクトする
Python の FTP クライアントなどのライブラリを使用する場合、特定の関数が標準出力に出力を提供する状況が発生することがあります。文字列値を返す代わりに。この出力をキャプチャするには、データを保持できる適切なオブジェクトに標準出力をリダイレクトする必要があります。
Java の BufferedReader とは異なり、Python は別のアプローチを提供します。 cStringIO モジュール (Python 3 では io に置き換えられます) は、メモリ内バッファとして機能する StringIO クラスを提供します。このバッファは、出力をインターセプトするために stdout などのストリームに効率的にラップできます。
このリダイレクトを実装するには、次の手順に従います。
import sys from cStringIO import StringIO # Store the original stdout stream old_stdout = sys.stdout # Create the in-memory buffer sys.stdout = mystdout = StringIO() # Execute code that generates output normally directed to stdout # Restore the original stdout stream sys.stdout = old_stdout # Access the output via mystdout.getvalue()
このアプローチでは、関数によって出力が生成されます。は StringIO オブジェクト (mystdout) にキャプチャされ、後で mystdout.getvalue() を使用して値を読み取ることでアクセスできます。
以上がPython で stdout を文字列バッファにリダイレクトするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。