python实现进度条

先说一下文本系统的控制符:
\r:   将光标移动到当前行的首位而不换行;
\n:   将光标移动到下一行,并不移动到首位;
\r\n: 将光标移动到下一行首位。

环境:
[email protected]:/alex/py/jingdutiao# python3
Python 3.5.2 (default, Jul  5 2016, 12:43:10)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 

方式1:
[email protected]:/alex/py/jingdutiao# cat test1.py
#!/usr/bin/env python
from __future__ import division
import sys,time
j = ‘#‘
if __name__ == ‘__main__‘:
  for i in range(1,61):
    j += ‘#‘
    sys.stdout.write(str(int((i/60)*100))+‘% ‘+j+‘->‘+ "\r")
    sys.stdout.flush()
    time.sleep(0.5)
print

[email protected]:/alex/py/jingdutiao# python3 test1.py
98% ############################################################->

方式2:
[email protected]:/alex/py/jingdutiao# cat test4.py
#!/usr/bin/env python
# -*- coding:utf-8 -*-
__author__ = ‘l‘

import sys
from time import sleep
def viewBar(i):
    """
    进度条效果
    :param i:
    :return:
    """
    output = sys.stdout
    for count in range(0, i + 1):
        second = 0.1
        sleep(second)
        output.write(‘\rcomplete percent ----->:%.0f%%‘ % count)
    output.flush()

viewBar(100)
[email protected]:/alex/py/jingdutiao# python3 test4.py
complete percent ----->:100%

方式3:
tqdm模块
    tqdm是一个快速、扩展性强的进度条工具库,
    其githup地址:https://github.com/tqdm/tqdm 

1)安装:
直接使用pip安装:
    pip install tqdm
2)使用:
from time import sleep
from tqdm import tqdm
for i in tqdm(range(1, 500)):
    sleep(0.01)

自己实操:在ubuntu上默认安装到2.7环境变量里去了
[email protected]:/alex/py/jingdutiao# pip install tqdm
Collecting tqdm
  Downloading tqdm-4.8.4-py2.py3-none-any.whl
Installing collected packages: tqdm
Successfully installed tqdm-4.8.4
You are using pip version 8.1.1, however version 8.1.2 is available.
You should consider upgrading via the ‘pip install --upgrade pip‘ command.

pip install --upgrade pip
pip install tqdm
pip -V
cd /usr/local/lib/python2.7/dist-packages/
cp -r  tqdm tqdm-4.8.4.dist-info/ /usr/local/lib/python3.5/dist-packages
[email protected]:/alex/py/jingdutiao# cat test5.py
from time import sleep
from tqdm import tqdm
for i in tqdm(range(1, 500)):
    sleep(0.01)
[email protected]:/alex/py/jingdutiao# python3  test5.py
100%|████████████████████████████████████████████████████████████████████████| 499/499 [00:05<00:00, 92.20it/s

方式4:
[email protected]:/alex/py/jingdutiao# cat   test2.py 

class ProgressBar():
  def __init__(self, width=50):
    self.pointer = 0
    self.width = width
  def __call__(self,x):
     # x in percent
     self.pointer = int(self.width*(x/100.0))
     return "|" + "#"*self.pointer + "-"*(self.width-self.pointer)+ "|\n %d percent done" % int(x)

if __name__ == ‘__main__‘:
    import time,os
pb = ProgressBar()
for i in range(101):
    os.system(‘clear‘)
    print( pb(i))
    time.sleep(0.1)

[email protected]:/alex/py/jingdutiao#
执行结果:
|#################################################-|
percent done
|##################################################|   #输出100行内容,但是在屏幕会实时清屏,只展示1行
percent done

方式5:
[email protected]:/alex/py/jingdutiao# python3   test3.py
====================================================================================================>100%
#cat test3.py
import sys
import time
def view_bar(num,total):
    rate = num / total
    rate_num = int(rate * 100)
    #r = ‘\r %d%%‘ %(rate_num)
    r = ‘\r%s>%d%%‘ % (‘=‘ * rate_num, rate_num,)
    sys.stdout.write(r)
    sys.stdout.flush
if __name__ == ‘__main__‘:
    for i in range(0, 101):
        time.sleep(0.1)
        view_bar(i, 100)

  

时间: 2024-12-07 12:12:56

python实现进度条的相关文章

python实现进度条和百分比同时显示

python中同时打印进度条和百分比 仅打印进度条: import sys,time for i in range(100): sys.stdout.write('>') sys.stdout.flush() time.sleep(0.1) 效果: 打印百分比: import sys,time for i in range(100): sys.stdout.write('\r%s%%'%(i+1)) sys.stdout.flush() time.sleep(0.1) 效果: 打印进度条和百分比

自主学习python文本进度条

经过自己一段时间的学习,已经略有收获了!在整个过程的进行中,在我逐渐通过看书,看案例,做题积累了一些编程python的经验以后,我发现我渐渐爱上了python,爱上了编程! 接下来,当然是又一些有趣的实验案例:文本进度条的制作和π的计算! 相信大家都玩过游戏吧,面对加载的游戏数据,我们可能会遇到这样一种情况:网络卡顿的时候,进度条缓缓移动却迟迟不能加载完全,实在是消磨人们的耐心(狗头) 在我们的印象中,进度条应该是一个条状方块,随着时间的推移慢慢向前移动,直至数据加载完成! 那么,要怎么用pyt

Python的进度条的制作

import sys,time #导入模块 for i in range(50): #进度条的长度 sys.stdout.write("#") #进度条的内容,这里要注意了,pycharm有可能不显示write的方法 sys.stdout.flush() #刷新缓存 time.sleep(0.5) #间隔时间,和shell的sleep差不多吧 上面使用sys模块的标准输出,并没循环一次就刷新一次缓存如果没有flush,内容将会在内存中全部打印完后才会显示出来.

Python下载进度条

import dialog,e32,appuifw def ru(x):return x.decode('utf8') def qu(): appuifw.note(ru('已取消')) wait.close() wait=dialog.Wait(ru('载入中-'),True) wait.show() e32.ao_sleep(3) wait.close() pgrs = dialog.Progress(ru('请稍等-'), 100) pgrs.show() print dir(pgrs)

python打印进度条

import sys,time for i in range(50): sys.stdout.write("#") time.sleep(0.1) sys.stdout.flush()

python模拟进度条打印

def jindu(per,width=50): if per>100: per=100 showstr=('[%%-%ds]' % width) % (int(per/100*width) * '#') print('\r%s %d%%' %(showstr,per), end='', flush=True) totalsize=102500recive=0while recive<totalsize: time.sleep(0.5) recive+=1024 percent=100*rec

python手写实现进度条

哈哈哈,我们平时都经常见到python的进度条,安装pip包的时候,更新的时候,调用第三方库的时候,,,但是很少有人试过自己实现,今天来了兴趣就自己写一套哈哈哈 进度条的输出是在原地刷新的,所以用到输出的‘\r’和time库的sleep(),‘\r’即“换行,光标在上一行”.这里提供两种方法: ————使用print() for i in range(0,101,2):    print('\r----->>',i, '<<-----',end = "", fl

python 进度条

功能说明:将程序的执行进展情况按照百分比用进度条显示. print:打印末尾会自动加上换行符'\n',如果要让打印的结果一直在同一行显示,不能使用这个命令 sys.stdout.write():打印输出但结尾不带'\n',使输出一直在同一行,同时在末尾加上行首符'\r',将最新的输出结果一直保持在行首 sys.stdout.flush():将缓存在sys.stdout.write()的内容暂时打印出来 #!/usr/bin/env python # -*- coding:utf-8 -*- im

python实现一个控制台下的进度条

今天写练习爬虫感觉很需要个进度条,就随手用函数实现了一个,到了晚上突然感觉到这个东西应该单独写出来以后肯定用用得着. 代码也很简单,我就不细讲了,直接上代码了. 测试代码: instance.py import bar import time bar = bar.ProgressBar(50,0,2) for i in range(50): bar.move() # if i == 15: # bar.reset_pram(30,count=100,width=3) bar.bar_run()