任务:

在进行长时间操作时,向用户显示一个"进度指示条"。

解决方案:

#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)

最新文章

  1. No result defined for action com.lk.IndexAction and result success
  2. CSS样式----图文详解(二):css属性
  3. DataGridView key points
  4. 用javascript判断一个html元素是否存在的五种方法:
  5. sasscore学习之_mixin.scss
  6. ios-消息弹框之UIAlertView, UIActionSheet以及UIAlertController小结
  7. wampserver2.5安装 redis缓存,igbinary, phalcon框架
  8. 21.allegro下鼠标形状设置[原创]
  9. Jenkins入门-转
  10. google 开放I/O源码
  11. Lucene4.9学习笔记——Lucene建立索引
  12. Task的异步模式
  13. java初级开发程序员(第四单元)
  14. telematics product and company in China
  15. zabbix系列 ~ 报警模式
  16. jQuery属性--addClass()和removeClass()
  17. 一些常用的mysql语句实例-以后照写2
  18. 原子操作--sync/atomic的用法
  19. [0day]微软VS全版本DLL却持漏洞(VS2015 VS2013 VS2012 VS2010 VS2008)
  20. POJ 2371

热门文章

  1. Maven学习存档(1)——安装
  2. iview给布局MenuItem标签绑定点击事件
  3. Jmeter之参数化(4种设置方法)
  4. 牛客 158D a-贝利福斯数
  5. 修改git默认的编辑器nano为vim的方法
  6. LeetCode 腾讯精选50题--有效的括号
  7. http请求204
  8. 上传图片,语音,和富文本(webuploader,dropzone, froala)
  9. 【网络协议】ARP地址解析协议
  10. Linux 命令配置IP