> 文章列表 > Python循环进度可视化

Python循环进度可视化

Python循环进度可视化

2.2 循环进度可视化

在Python程序开发时,经常会遇到循环处理的情况,如果循环次数比较多,耗时又比较长的话,通常就没办法得知循环到哪里了,在大循环中等待我想不是一件很好的事情,有时候等不急只能强制停止程序。
如果在循环时可以显示循环的进度,会让人比较安心,至少心里有数。下面介绍两种方法,可以在循环时,在终端显示循环的进度。
覆盖终端中的输出以显示循环进度

import time
counts = 200
for i in range(counts):percent = (i + 1) * 100 // countsprint('\\r', end='')print(f'进度:{percent}%', end='')# 下面是循环处理代码time.sleep(0.05)

进度:100%

通过上面的方法,可以设定每次循环后将输出起点调整到行首,由于后续的进度显示会覆盖掉前面的,所以从视觉效果上看就是看到进度一直在变动,从1%一直到100%。
优点:不需要导入其它模块,并且for语句很灵活。
缺点:循环中不能输出其它内容,并且需要新建percent变量用来显示进度。
使用tqdm库中的trange

from tqdm import trange
from time import sleep
for i in trange(100):sleep(0.1)

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

由于是使用了第三方库,这种方法显示效果特别友好,可以显示以下信息:

  • 显示进度百分比
  • 显示进度条
  • 显示总耗时以及倒计时
  • 显示每秒处理的循环次数
    该方法优点是简单易用,不过缺点就是for语句不灵活,只能从trange中获取循环变量。