在某些如爬虫等程序运行时,所需要的时间往往比较多,这时候我们就迫切需要知道程序运行的进度,以此对时间有一定的把握,进度条的作用就能在这里彰显了,步骤如下:
1.导入库函数sys:
import sys
2.定义一个进度条函数:
@staticmethod def get_progress_bar(progress): MAX_LEN = 50 len = int(MAX_LEN * progress) return ('Progress:[' + '=' * len + ('>' if len < MAX_LEN else '') + ' ' * (MAX_LEN - len) + '] %.1f%%' % (progress * 100.))
MAX_LEN是进度条总长度,len展现的是当前进度,效果如下:
Progress:[> ] 0.0% …… Progress:[==========> ] 20.0% …… Progress:[===================================================] 100.0%
3.显示进度条:
count = 0 …… count = count + 1 sys.stderr.write('r33[K' + self.get_progress_bar(count / (self.C * dH * dW))) sys.stderr.flush()
以图像处理为例:self.C * dH * dW是一共要处理的像素数据,在进程中每处理一个数据count便会加1,进度参数便会传递给进度条函数。
sys.stderr.write():错误标准输出,打印到屏幕,不会主动加上任何结尾。实际上它是一种“假错误”,我们要利用它输出此时的进度,且伴随着进度的变化前一次的输出会被新输出代替即只能打印一个str
sys.stderr.flush():显式地让缓存区的信息输出(貌似加不加效果都一样)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)