Python循环中的进度输出
Dec 7, 2010今天在进行一个较为耗时的运算时
不知道程序运行了多少 等的比较焦虑
想到这种时候应该给程序加个进度显示
上万行的数据肯定不能每行都输出 那么每10%显示个进度吧
# -*- coding: UTF-8 -*- #源列表 这里随便定义一个 list=range(3456) #要打印的节点 10为每10%打印一次 node=range(0,len(list),len(list)/10) #开始循环 for index,item in enumerate(list): #打印百分比 if node.count(index)!=0: persent=index*100/len(list) print '%d%%' % persent #这里添加其他处理 print 'finish!'
第一行的list是代表要循环列表
主要思想是
首先用enumerate取到每行的索引号
然后制造一个抽样的列表 这里平均抽10个
然后到了列表中的进度时就打印一个百分比出来
总共多用了四行代码 循环体内多了个count和比较
我才学用python几天 感觉这代码很笨拙肯定有可以改进的地方
首先这个count就感觉很浪费 可是对于列表我找不到find或者exist方法
index方法搜索不到时会出错 也不好用
另外打印出来的比例也不是整数
不过是给自己看的 无所谓了
希望谁有什么更简单或者华丽的办法
可以指点我一下