在 Python 中覆蓋控制台輸出
在程式設計中,通常希望在執行耗時的任務時向使用者顯示進度資訊。一種流行的技術是更新控制台中的進度條或計數器。本文探討如何在 Python 中實現此目的。
取代控制台輸出
取代控制台輸出的一個簡單方法是使用「r」轉義序列,它會傳回將遊標移到目前行的開頭。透過在更新的字串之前寫入“r”並省略換行符,您可以有效地覆蓋先前的輸出。
<code class="python">import sys for i in range(10): sys.stdout.write("\rDoing thing %i" % i) sys.stdout.flush()</code>
這將使用循環中的最新迭代不斷覆蓋控制台。
進度條
對於更高級的進度指示器,您可以使用以下函數:
<code class="python">def start_progress(title): sys.stdout.write(title + ": [" + "-" * 40 + "]") sys.stdout.flush() def progress(x): x = int(x * 40 // 100) sys.stdout.write("#" * (x - progress_x)) sys.stdout.flush() def end_progress(): sys.stdout.write("#" * (40 - progress_x) + "]\n") sys.stdout.flush()</code>
此函數將標題作為輸入並顯示進度條在控制台中。 Progress函數更新進度百分比,而end_progress函數完成進度條。
呼叫序列
若要使用進度條,請呼叫start_progress對其進行初始化,然後多次呼叫進度來更新百分比。最後呼叫end_progress來完成進度條。
<code class="python">start_progress("My Long Task") progress(50) progress(75) end_progress()</code>
以上是如何在 Python 中覆蓋控制台輸出?的詳細內容。更多資訊請關注PHP中文網其他相關文章!