首頁 >後端開發 >Python教學 >如何在 Python 中覆蓋控制台輸出?

如何在 Python 中覆蓋控制台輸出?

Barbara Streisand
Barbara Streisand原創
2024-11-02 22:08:30843瀏覽

How to Overwrite Console Output in Python?

在 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn