在 Python 中重新整理列印輸出

Muhammad Waiz Khan 2023年1月30日 2021年2月28日
  1. 在 Python 中使用 print() 函式中的 flush 引數重新整理列印輸出
  2. 在 Python 中使用 sys.stdout.flush() 方法重新整理列印輸出
  3. 在 Python 中使用 -u 標誌重新整理列印輸出
在 Python 中重新整理列印輸出

在本教程中,我們將討論在 Python 中把 print()sys.stdout.write() 等列印函式的輸出重新整理到螢幕上的各種方法。一般來說,輸入和輸出函式會將資料儲存到緩衝區中,以提高程式的效能。因此,為了降低系統呼叫的次數,先將資料儲存在緩衝區中,然後再顯示到螢幕上,而不是一個字元一個字元地寫到螢幕或檔案上等。

本教程將講解設定列印函式在每次呼叫時強行重新整理資料而不是緩衝區的多種方法。

在 Python 中使用 print() 函式中的 flush 引數重新整理列印輸出

print() 函式的 flush 引數可以設定為 True,以阻止函式對輸出資料進行緩衝,並強行重新整理。如果將 flush 引數設定為 True,則 print() 函式將不會對資料進行緩衝以提高效率,而是在每次呼叫時不斷地對資料進行重新整理。

下面的示例程式碼演示瞭如何在 Python 中使 print() 函式強制重新整理列印輸出。

print("This is my string", flush=True)

在 Python 中使用 sys.stdout.flush() 方法重新整理列印輸出

另一種在列印資料時重新整理輸出資料的方法是使用 Python 的 sys 模組的 sys.stdout.flush()sys.stdout.flush() 會強制可以 print()sys.stdout.write() 的列印函式在每次呼叫時將輸出資料寫在螢幕或檔案上,而不是緩衝。

下面的程式碼示例演示瞭如何使用 sys.stdout.flush() 方法來重新整理列印的輸出資料。

import sys

sys.stdout.write("This is my string")
sys.stdout.flush()

在 Python 中使用 -u 標誌重新整理列印輸出

我們可以在執行 .py 檔案時將 -u 標誌傳遞給直譯器,它將強制 stdinstdoutstderr 在執行 .py 檔案時不緩衝和重新整理資料。

下面的例子演示瞭如何在 Python 中使用 -u 標誌來重新整理列印輸出。

$ python -u mycodefile.py

相關文章 - Python Print