进度条

There are 2 entries for the tag 进度条

Python在Console下显示文本进度条的方法

MitchellChu 2016-02-13 其他技术

在用Python处理耗时的任务时,往往希望能够了解到任务当前的处理进度,这个时候需要在任务中不断打印出任务的进度信息。一般我们是这样的: def process_mission(): """ 任务处理方法 """ # 这里是任务处理过程 print('当前处理到第[%d]项' % count) # 这里是任务处理过程  这种方式会在窗口输出一堆类似下面这样的信息: 当前处理到第1项 当前处理到第2项 当前处理到第3项 当前处理到第4项 当前处理到第5项 .... 这种信息有可能非常非常的长,也有可能输出的时候非常非常的快,以至于根本就无法看清楚(输出非常快的时候)。 这时候,我们期待这样的功能: [================== ] 25.60% 但如果纯粹的使用print是无法达到效果的,会变成和前面一样,满屏都是这种杠杠。 如何正确显示进度条呢? Python提供了一个模块,叫:progressbar,当使用这个模块之后,你要显示进度的仅需如下: import progressbar # 先定义一个进度条 # http://blog.useasp.net/ pbar = progressbar.ProgressBar(maxval=100, \ widgets=[progressbar.Bar('=', '[', ']'), ' ', \ progressbar.Percentage()]) for i in xrange(100): # 更新进度条 pbar.update(i+1) pbar.finish() # Ok,到此完结。  是不是很容易就完成进度条的显示?不过遗憾的是,这个python模块并不是默认的,而是需要安装: pip install progressbar 如果没有安装pip可以参考这里 。 对于只要一个简单进度条的人来说,安装个python包似乎有点动静太大,那么,自己动手写一个便是了。 下面是Mitchell自己写的一个类似的进度条,不用安装包,简单易用。 # 在使用本方法之前,请先做如下import # from __future__ import division # import math # import sys # ##blog.useasp.net## def progressbar(cur, total): percent = '{:.2%}'.format(cur / total) sys.stdout.write('\r') ...

wget下载进度条变成多行显示的解决方法

MitchellChu 2014-03-19 Unix & Linux

在之前为了解决Putty客户端连接到CentOS之后显示乱码的问题,设置了LANG=zh_CN.UTF-8之后,在使用wget下载的时候,wget下载进度条异常,竟然不能在一行显示了,变成了坑爹的多行显示,每一个周期wget自动会产生新的一行,结果下载进度慢点的文件,不用一会儿整个屏幕就全是wget进度条的天下了。 wget 的进度条变成了悲催的屏幕杀手,满屏幕都是下面这样的...(=号省略无数个) 99% [==========================================> ] 10,416,337 6.09K/s eta(英国中部时 99% [==========================================> ] 10,419,241 6.10K/s eta(英国中部时 99% [==========================================> ] 10,419,241 5.73K/s eta(英国中部时 99% [==========================================> ] 10,425,049 5.79K/s eta(英国中部时 99% [==========================================> ] 10,427,953 5.65K/s eta(英国中部时 100%[===========================================>] 10,431,288 5.65K/s in 27m 12s 这和原来的一行显示进度条的节奏完全不同啊。后面才发现这是因为翻译的时候,eta被转成eta(英国中部时间),导致整个输出太长,引起了断行,导致下次输出必须从新行开始。 再后来,发现网上也有很多人出现这个问题,关键是,这个问题从很早之前就一直存在,修改起来倒还是挺快的。 #注意文件路径是在:/usr/share/locale/zh_CN/LC_MESSAGES/ cd /usr/share/locale/zh_CN/LC_MESSAGES/ #先重命名 mv wget.mo wget.mo.bak #从重命名后的文件里替换eta(英国中部时间)为ETA,并导出新文件 msgunfmt wget.mo.bak -o - | sed 's/eta(英国中部时间)/ETA/' | msgfmt - -o wget.mo TIPs: 1. 如果没有msgunfmt 和msgfmt,请安装gettext(没有直接找到安装msgunfmt和msgfmt的方式)。 2. 以上命令本人是在root用户下操作

关于博主

  一枚成分复杂的网络IT分子,属于互联网行业分类中的杂牌军。