ホームページ > バックエンド開発 > Python チュートリアル > Python で stdout を文字列バッファにリダイレクトするにはどうすればよいですか?

Python で stdout を文字列バッファにリダイレクトするにはどうすればよいですか?

DDD
リリース: 2024-11-25 07:15:29
オリジナル
699 人が閲覧しました

How Can I Redirect stdout to a String Buffer in Python?

標準出力を文字列バッファにリダイレクトする

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート