import sys import tempfile class StdoutWrapper: def __init__(self): self.temp_file = tempfile.NamedTemporaryFile(mode="w+", delete=False) self.original_stdout = sys.stdout def write(self, message: str): self.temp_file.write(message) self.temp_file.flush() print(message, end="", file=self.original_stdout) def flush(self): self.temp_file.flush() def read(self): self.temp_file.seek(0) return self.temp_file.read() def close(self): self.temp_file.close() def fileno(self): return self.temp_file.fileno() def get_stdout(): # Colab 環境をチェックする if "google.colab" in sys.modules: return StdoutWrapper() else: return sys.stdout