Add print to custom stdout
This commit is contained in:
@@ -4,29 +4,25 @@ import tempfile
|
|||||||
|
|
||||||
class StdoutWrapper:
|
class StdoutWrapper:
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
# 一時ファイルの作成とオープン
|
|
||||||
self.temp_file = tempfile.NamedTemporaryFile(mode="w+", delete=False)
|
self.temp_file = tempfile.NamedTemporaryFile(mode="w+", delete=False)
|
||||||
|
self.original_stdout = sys.stdout
|
||||||
|
|
||||||
def write(self, message: str):
|
def write(self, message: str):
|
||||||
# メッセージを一時ファイルに書き込む
|
|
||||||
self.temp_file.write(message)
|
self.temp_file.write(message)
|
||||||
self.temp_file.flush()
|
self.temp_file.flush()
|
||||||
|
print(message, end="", file=self.original_stdout)
|
||||||
|
|
||||||
def flush(self):
|
def flush(self):
|
||||||
# 一時ファイルのフラッシュ
|
|
||||||
self.temp_file.flush()
|
self.temp_file.flush()
|
||||||
|
|
||||||
def read(self):
|
def read(self):
|
||||||
# ファイルの内容を読み出す
|
self.temp_file.seek(0)
|
||||||
self.temp_file.seek(0) # ファイルの先頭にシーク
|
|
||||||
return self.temp_file.read()
|
return self.temp_file.read()
|
||||||
|
|
||||||
def close(self):
|
def close(self):
|
||||||
# 一時ファイルを閉じる
|
|
||||||
self.temp_file.close()
|
self.temp_file.close()
|
||||||
|
|
||||||
def fileno(self):
|
def fileno(self):
|
||||||
# 一時ファイルのファイルディスクリプタを返す
|
|
||||||
return self.temp_file.fileno()
|
return self.temp_file.fileno()
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user