溫馨提示×

Python中的print函數(shù)如何實現(xiàn)進度條效果

小樊
109
2024-07-20 06:25:47
欄目: 編程語言

在Python中實現(xiàn)進度條效果可以使用systime模塊來實現(xiàn)。具體代碼如下:

import sys
import time

def progress_bar(iterable, total=None):
    if total is None:
        total = len(iterable)

    bar_length = 50
    start_time = time.time()
    for i, item in enumerate(iterable, 1):
        progress = i / total
        elapsed_time = time.time() - start_time
        eta = elapsed_time / progress - elapsed_time

        bar = "#" * int(progress * bar_length)
        sys.stdout.write(f"\r[{bar:50}] {i}/{total} - {progress*100:.1f}% - ETA: {eta:.2f}s")
        sys.stdout.flush()

        yield item

    sys.stdout.write('\n')

# 示例
for _ in progress_bar(range(100)):
    time.sleep(0.1)

以上代碼定義了一個progress_bar函數(shù),接受一個可迭代對象和總數(shù)作為參數(shù),然后在循環(huán)中打印進度條和相關信息。使用sys.stdout.write函數(shù)可以實現(xiàn)在同一行不斷更新輸出,從而實現(xiàn)進度條效果。

0