在Python 解釋器中停用sys.stdout 的輸出緩衝
Python 解釋器預設為sys.stdout(類似檔案)啟用輸出緩衝接受標準的物件輸出。
停用緩衝方法:
要停用輸出緩衝,有幾種方法:
python -u [script.py]
class Unbuffered(object): def __init__(self, stream): self.stream = stream def write(self, data): self.stream.write(data) self.stream.flush() def writelines(self, datas): self.stream.writelines(datas) self.stream.flush() def __getattr__(self, attr): return getattr(self.stream, attr) import sys sys.stdout = Unbuffered(sys.stdout)
將此變數設為非空值會停用緩衝:
export PYTHONUNBUFFERED=1
此方法涉及打開一個新的文件描述符沒有緩衝:
import os sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)
此外,正如問題中提到的,可以在執行期間以編程方式設置全局標誌。然而,似乎沒有一個顯式的全域標誌來禁用輸出緩衝。
以上是如何在 Python 中停用 sys.stdout 的輸出緩衝?的詳細內容。更多資訊請關注PHP中文網其他相關文章!