首頁 >後端開發 >Python教學 >如何在 Python 中用計數器和進度條取代控制台輸出?

如何在 Python 中用計數器和進度條取代控制台輸出?

Patricia Arquette
Patricia Arquette原創
2024-11-03 14:51:30220瀏覽

How to Replace Console Output with a Counter and Progress Bar in Python?

用 Python 取代控制台輸出

Python 的多功能性允許根據特定需求自訂控制台輸出。一種常見的技術是建立就地更新的動態控制台計數器。

查詢:用計數器取代輸出

要用進度計數器取代控制台輸出,循環可以修改為在執行每次迭代後顯示狀態訊息。與先前的輸出(每個狀態包含一個新行)不同,此計數器只會更新最後顯示的行。

解決方案:使用 'r'

一個簡單的方法解決方案包括在新狀態訊息之前插入回車符「r」並避免任何換行符。這可確保字串不會變短,如果希望字串長度保持一致,則這是一種可行的方法。

例如:

import sys

for i in range(5):
    sys.stdout.write("\rDoing thing %d" % i)
    sys.stdout.flush()

增強的解決方案:進度條

為了更複雜的進度條顯示,可以實現進度條。下面的程式碼提供了一個簡單的進度條函數:

def start_progress(title):
    sys.stdout.write(title + ": [" + "-" * 40 + "]" + chr(8) * 41)
    sys.stdout.flush()
    progress_x = 0

def progress(x):
    global progress_x
    x = int(x * 40 // 100)
    sys.stdout.write("#" * (x - progress_x))
    sys.stdout.flush()
    progress_x = x

def end_progress():
    sys.stdout.write("#" * (40 - progress_x) + "]\n")
    sys.stdout.flush()

start_progress 函數用標題描述初始化進度條。 Progress(x) 以完成百分比 (x) 更新進度列。最後end_progress完成進度顯示。

以上是如何在 Python 中用計數器和進度條取代控制台輸出?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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