刪除Python sys.stdout 中的輸出緩衝
Python 的sys.stdout 物件通常在緩衝模式下運行,輸出在輸出之前會被暫時存儲。顯示。雖然此緩衝可以提高大型傳輸的效能,但它也會延遲互動式環境中關鍵資訊的顯示。
停用輸出緩衝
停用輸出緩衝並確保立即顯示sys.stdout 輸出,有幾種方法可用:
-
命令列開關: 在呼叫Python 解釋器時新增「-u」開關會完全跳過緩衝。
-
包裝物件: 使用每次寫入後刷新的物件包裝 sys.stdout,例如作為提供的回應中的「Unbuffered」類,停用緩衝。
-
環境變數: 設定 PYTHONUNBUFFERED 環境變數可防止整個 Python 流程的緩衝。
-
檔案描述符操作: 將 sys.stdout 設定為 os.fdopen(sys.stdout.fileno() , 'w', 0) 透過將 sys.stdout的檔案描述子變更為無緩衝來停用緩衝
-
程式碼修改:您可以在執行過程中動態地將 sys.stdout 串流變更為無緩衝版本。但由於潛在的不穩定因素,一般不建議使用此方法。
補充說明
對於特定的印刷語句,寫入後使用flush方法可以保證立即生效輸出。有關刷新各個列印操作的詳細信息,請參閱連結的資源。
以上是如何消除 Python sys.stdout 中的輸出緩衝?的詳細內容。更多資訊請關注PHP中文網其他相關文章!