成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Python 動(dòng)態(tài)進(jìn)度條實(shí)現(xiàn)

開發(fā) 前端
在編寫Python腳本時(shí),特別是在處理長時(shí)間運(yùn)行的任務(wù)或者循環(huán)迭代的過程中,向用戶展示任務(wù)的執(zhí)行進(jìn)度是非常重要的。進(jìn)度條不僅能夠提高用戶體驗(yàn),還能讓用戶對(duì)程序的運(yùn)行情況有一個(gè)直觀的了解。

在編寫Python腳本時(shí),特別是在處理長時(shí)間運(yùn)行的任務(wù)或者循環(huán)迭代的過程中,向用戶展示任務(wù)的執(zhí)行進(jìn)度是非常重要的。進(jìn)度條不僅能夠提高用戶體驗(yàn),還能讓用戶對(duì)程序的運(yùn)行情況有一個(gè)直觀的了解。這篇文章將會(huì)介紹如何在Python中實(shí)現(xiàn)動(dòng)態(tài)進(jìn)度條,并通過多個(gè)實(shí)例來展示其實(shí)現(xiàn)方式。

1. 使用 print 函數(shù)

最簡單的方式是直接使用print函數(shù)來更新進(jìn)度條的狀態(tài)。

示例代碼 1:

import time
def progress_bar(n, total, bar_length=20):
    percent = float(n) / total
    arrow = '-' * int(round(percent * bar_length) - 1) + '>'
    spaces = ' ' * (bar_length - len(arrow))
    print(f'Progress: [{arrow}{spaces}] {int(round(percent * 100))}%', end='\r')
total = 50
for i in range(total):
    time.sleep(0.1)  # 模擬耗時(shí)操作
    progress_bar(i + 1, total)
print()  # 打印換行

輸出結(jié)果:

Progress: [--------------------->] 100%

2. 使用 tqdm 庫

tqdm 是一個(gè)非常流行的進(jìn)度條庫,它能夠輕松地為循環(huán)添加進(jìn)度條。

示例代碼 2:

from tqdm import tqdm
import time
total = 50
for i in tqdm(range(total), desc="Processing"):
    time.sleep(0.1)  # 模擬耗時(shí)操作

輸出結(jié)果:

Processing: 100%|██████████| 50/50 [00:05<00:00,  9.82it/s]

3. 自定義樣式

tqdm 支持自定義樣式,比如顏色和字符。

示例代碼 3:

from tqdm import tqdm
import time
total = 50
for i in tqdm(range(total), desc="Processing", bar_format="{desc}: {n_fmt}/{total_fmt} [{elapsed}<{remaining}, {rate_fmt}{postfix}]"):
    time.sleep(0.1)  # 模擬耗時(shí)操作

輸出結(jié)果:

Processing: 50/50 [00:05<00:00,  9.82it/s]

4. 多進(jìn)度條

有時(shí)候我們需要同時(shí)跟蹤多個(gè)進(jìn)度條。

示例代碼 4:

from tqdm import tqdm
import time
with tqdm(total=100, desc="First") as pbar1, tqdm(total=100, desc="Second") as pbar2:
    for i in range(100):
        time.sleep(0.05)
        pbar1.update(1)
        pbar2.update(1)

輸出結(jié)果:

First: 100%|██████████| 100/100 [00:05<00:00, 19.31it/s]
Second: 100%|██████████| 100/100 [00:05<00:00, 19.31it/s]

5. 嵌套進(jìn)度條

當(dāng)你的任務(wù)是分層結(jié)構(gòu)時(shí),嵌套進(jìn)度條會(huì)很有用。

示例代碼 5:

from tqdm import tqdm
import time
outer = tqdm(total=100, desc="Outer Loop")
for i in outer:
    inner = tqdm(total=100, desc="Inner Loop", leave=False)
    for j in inner:
        time.sleep(0.01)
        inner.update(1)
    outer.update(1)
    inner.close()
outer.close()

輸出結(jié)果:

Outer Loop: 100%|██████████| 100/100 [00:10<00:00,  9.78it/s]

6. 更新頻率控制

有時(shí)你需要控制進(jìn)度條的更新頻率。

示例代碼 6:

from tqdm import tqdm
import time
total = 50
for i in tqdm(range(total), desc="Processing", mininterval=0.5):
    time.sleep(0.1)  # 模擬耗時(shí)操作

輸出結(jié)果:

Processing: 100%|██████████| 50/50 [00:05<00:00,  9.82it/s]

7. 動(dòng)態(tài)描述

在循環(huán)中更新描述文本。

示例代碼 7:

from tqdm import tqdm
import time
total = 50
with tqdm(total=total, desc="Starting") as pbar:
    for i in range(total):
        time.sleep(0.1)  # 模擬耗時(shí)操作
        pbar.set_description(f"Processing {i+1}")
        pbar.update(1)

輸出結(jié)果:

Processing 50: 100%|██████████| 50/50 [00:05<00:00,  9.82it/s]

8. 自定義回調(diào)

可以定義一個(gè)回調(diào)函數(shù)來處理進(jìn)度條的更新。

示例代碼 8:

from tqdm import tqdm
import time
def update_progress(progress):
    print(f"Progress: {progress}% completed.", end="\r")
total = 50
for i in range(total):
    time.sleep(0.1)  # 模擬耗時(shí)操作
    update_progress(int((i + 1) / total * 100))
print()  # 打印換行

輸出結(jié)果:

Progress: 100% completed.

9. 使用 click 庫

click 是一個(gè)用于構(gòu)建命令行界面的庫,也可以用來顯示進(jìn)度條。

示例代碼 9:

import click
import time
total = 50
with click.progressbar(range(total), label='Processing') as bar:
    for i in bar:
        time.sleep(0.1)  # 模擬耗時(shí)操作

輸出結(jié)果:

Processing 50/50 [100%]

10. 使用 rich 庫

rich 是一個(gè)強(qiáng)大的庫,可以創(chuàng)建美觀的終端輸出,包括進(jìn)度條。

示例代碼 10:

from rich.progress import track
import time
total = 50
for i in track(range(total), descriptinotallow="Processing..."):
    time.sleep(0.1)  # 模擬耗時(shí)操作

輸出結(jié)果:

Processing... 100% 50/50 [00:05<00:00,  9.82it/s]

通過上述示例,你可以看到不同的方法來實(shí)現(xiàn)動(dòng)態(tài)進(jìn)度條。選擇合適的方法取決于你的具體需求和場景。希望這些示例能幫助你在實(shí)際項(xiàng)目中有效地使用進(jìn)度條功能!


責(zé)任編輯:華軒 來源: 測試開發(fā)學(xué)習(xí)交流
相關(guān)推薦

2015-07-31 11:19:43

數(shù)字進(jìn)度條源碼

2023-12-11 17:15:05

應(yīng)用開發(fā)波紋進(jìn)度條ArkUI

2024-06-13 08:15:00

2009-08-17 14:41:47

C#進(jìn)度條實(shí)現(xiàn)

2009-08-17 15:48:47

C# WinForm進(jìn)

2023-11-30 11:38:29

CSS網(wǎng)頁進(jìn)度條

2009-07-21 14:49:55

XmlHttpRequ文件上傳進(jìn)度條

2023-12-27 13:45:00

Python進(jìn)度條代碼

2020-12-14 13:32:40

Python進(jìn)度條參數(shù)

2011-07-05 15:16:00

QT 進(jìn)度條

2024-07-25 08:55:47

進(jìn)度條水缸進(jìn)度動(dòng)畫效果

2009-11-24 15:23:50

PHP文件上傳進(jìn)度條

2012-07-13 13:52:54

Canvas

2009-08-17 17:15:48

C# 進(jìn)度條效果

2009-08-17 14:36:15

C#進(jìn)度條實(shí)現(xiàn)

2022-07-23 21:37:48

Python

2012-01-17 13:58:17

JavaSwing

2009-06-06 18:54:02

JSP編程進(jìn)度條

2021-12-02 09:31:22

Python 代碼進(jìn)度條

2009-08-18 09:49:00

C# listview
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产一区二区三区四区 | 精品成人佐山爱一区二区 | 国产伦精品一区二区 | 人人爽日日躁夜夜躁尤物 | 精品国产91久久久久久 | 精品欧美一区二区三区久久久 | 中文字幕精品一区二区三区在线 | avav在线看 | 欧美性生活一区二区三区 | 91视频入口 | 涩涩视频网站在线观看 | 成年免费大片黄在线观看岛国 | 国产区在线 | 久久中文字幕电影 | 久久成人国产 | 一区二区三区免费 | 亚洲国产精品一区二区久久 | 狠狠色综合久久丁香婷婷 | 国产精品久久久久免费 | 91毛片在线看| 色狠狠一区 | av免费网址| 91视频中文| 91视频进入 | 久久久久国产一区二区三区 | 亚洲一区久久 | 午夜欧美| 日韩精品一区二区三区中文在线 | 91久久视频| 日韩精品视频在线播放 | 日韩国产黄色片 | 九九免费在线视频 | 日韩激情视频一区 | 久久久久久av| 国产亚洲精品美女久久久久久久久久 | 99久久电影 | 7799精品视频天天看 | 国产一区二区在线播放 | 超碰电影 | 欧美aaa一级片 | 欧美一极视频 |