欢迎访问宙启技术站
智能推送

使用Python实现进度条的方法和技巧

发布时间:2023-12-27 13:19:39

Python中可以使用tqdm库实现进度条。

tqdm是一个快速、可扩展的Python进度条库,可以帮助我们在循环或迭代过程中实时显示进度条。

安装tqdm库可以使用pip命令:

pip install tqdm

下面是一个使用tqdm库实现进度条的例子:

from tqdm import tqdm
import time

# 定义一个需要遍历的列表
my_list = range(100)

# 使用tqdm封装列表,在循环过程中实时显示进度条
for i in tqdm(my_list):
    # 模拟耗时操作
    time.sleep(0.1)

运行上述代码,你会看到一个类似下面这样的进度条:

100%|██████████████████████████████████████████████████████████| 100/100 [00:10<00:00,  9.92it/s]

进度条以百分比的形式显示了循环的进度,同时还显示了剩余时间(在方括号中),每秒处理的项目数(it/s)等信息。

tqdm库提供了许多参数和方法来自定义和控制进度条的外观和行为。以下是一些常用的技巧:

1. 自定义进度条的前缀和后缀:使用desc参数可以设置前缀,使用postfix参数可以设置后缀。

   for i in tqdm(my_list, desc='Processing', postfix='Complete'):
       ...
   

2. 自定义进度条的长度:使用ncols参数可以设置进度条的长度,即显示的字符数。

   for i in tqdm(my_list, ncols=80):
       ...
   

3. 直接更新进度条:在某些情况下,你可能希望直接更新进度条的值而不是逐步递增。可以使用tqdm.set_postfix()方法来实现。

   with tqdm(total=len(my_list)) as pbar:
       for i in my_list:
           pbar.set_postfix({'progress': i})
           pbar.update(1)
   

4. 手动控制进度条:通过创建tqdm对象,可以手动控制进度条,例如手动更新进度,暂停和继续。

   pbar = tqdm(total=len(my_list))
   for i in my_list:
       pbar.update(1)
       # 暂停进度条
       if i == 50:
           pbar.pause()
           print('Progress bar paused.')
           time.sleep(2)
           # 继续进度条
           pbar.resume()
           print('Progress bar resumed.')
   pbar.close()
   

利用tqdm库,可以轻松地在Python中实现进度条效果,并为循环和迭代过程提供可视化的反馈。无论是处理大型数据集、进行爬虫操作还是执行复杂的计算任务,进度条都能提升用户体验,帮助我们更好地掌控程序的执行进度。