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

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

Barbara Streisand
發布: 2024-11-02 22:08:30
原創
818 人瀏覽過

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板