例:「xxx」を含むブロック印刷
コードのデモ:
import sys
# 標準出力処理関数をカスタマイズします
def handle_stdout(text):
if "xxx" not in text: # 出力に "xxx" が含まれる場合、印刷しません
sys.__stdout__.write(text) # 出力を標準出力
# カスタム出力ストリームを作成し、カスタム処理関数クラスにリダイレクト
CustomOutputStream:
def __init__(self):
self.buffer = ""
def write(self, text):
handle_stdout(text)
deflush(self) :
#バッファをフラッシュするロジックを実装します。
# たとえば、バッファの内容をファイルまたは標準出力ストリームに書き込みます。
print(self.buffer, end="")
self.buffer = ""
# 標準出力をカスタム出力ストリームにリダイレクトします
。stdout = CustomOutputStream()
# 出力例
print("Hello") # 印刷されます
print("xxx") # 印刷されません
print("World") # 印刷されます