cookbook 11.1 在文本控制台中显示进度条
2024-09-04 21:04:48
任务:
在进行长时间操作时,向用户显示一个"进度指示条"。
解决方案:
#coding=utf-8
import sys
class progressbar(object):
def __init__(self,finalcount,block_char='.'):
self.finalcount = finalcount
self.blockcount = 0
self.block = block_char
self.f = sys.stdout
if not self.finalcount: return
self.f.write('\n-------- % Process ------- 1\n')
self.f.write(' 1 2 3 4 5 6 7 8 9 0\n')
self.f.write(' 0 0 0 0 0 0 0 0 0 0\n') def progress(self,count):
count = min(count,self.finalcount)
if self.finalcount:
percentcomplent = int(round(100.0*count/self.finalcount))
if percentcomplent < 1: percentcomplent = 1
else:
percentcomplent = 100
blockcount = int(percentcomplent//2)#//就是除法,但不四舍五入
if blockcount <= self.blockcount:
return
for i in range(self.blockcount,blockcount):
self.f.write(self.block)
self.f.flush()
self.blockcount = blockcount
if percentcomplent == 100:
self.f.write("\n") #test
if __name__ == '__main__':
from time import sleep
pb = progressbar(8,"*")
for count in range(1,9):
pb.progress(count)
sleep(0.2)
pb = progressbar(100)
pb.progress(20)
sleep(0.3)
pb.progress(47)
sleep(0.3)
pb.progress(90)
sleep(0.3)
pb.progress(100)
print "testing 1:"
pb = progressbar(1)
pb.progress(1)
最新文章
- No result defined for action com.lk.IndexAction and result success
- CSS样式----图文详解(二):css属性
- DataGridView key points
- 用javascript判断一个html元素是否存在的五种方法:
- sasscore学习之_mixin.scss
- ios-消息弹框之UIAlertView, UIActionSheet以及UIAlertController小结
- wampserver2.5安装 redis缓存,igbinary, phalcon框架
- 21.allegro下鼠标形状设置[原创]
- Jenkins入门-转
- google 开放I/O源码
- Lucene4.9学习笔记——Lucene建立索引
- Task的异步模式
- java初级开发程序员(第四单元)
- telematics product and company in China
- zabbix系列 ~ 报警模式
- jQuery属性--addClass()和removeClass()
- 一些常用的mysql语句实例-以后照写2
- 原子操作--sync/atomic的用法
- [0day]微软VS全版本DLL却持漏洞(VS2015 VS2013 VS2012 VS2010 VS2008)
- POJ 2371