• Python实现进度条总结


    先说一下文本系统的控制符:
    :   将光标移动到当前行的首位而不换行;
    :   将光标移动到下一行,并不移动到首位;
    : 将光标移动到下一行首位。
         
    环境:
    root@ubuntu16:/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:
    root@ubuntu16:/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+'->'+ " ")
        sys.stdout.flush()
        time.sleep(0.5)
    print
     
    root@ubuntu16:/alex/py/jingdutiao# python3 test1.py
    98% ############################################################->
     
     
    方式2:
    root@ubuntu16:/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(' complete percent ----->:%.0f%%' % count)
        output.flush()
     
    viewBar(100)
    root@ubuntu16:/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环境变量里去了
    root@ubuntu16:/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
    root@ubuntu16:/alex/py/jingdutiao# cat test5.py
    from time import sleep
    from tqdm import tqdm
    for i in tqdm(range(1, 500)):
        sleep(0.01)
    root@ubuntu16:/alex/py/jingdutiao# python3  test5.py
    100%|████████████████████████████████████████████████████████████████████████| 499/499 [00:05<00:00, 92.20it/s
     
     
     
    方式4:
    root@ubuntu16:/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)+ "| %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)
     
    root@ubuntu16:/alex/py/jingdutiao#
    执行结果:
    |#################################################-|
    percent done
    |##################################################|   #输出100行内容,但是在屏幕会实时清屏,只展示1行
    percent done
     
     
    方式5:
    root@ubuntu16:/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 = ' %d%%' %(rate_num)
        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)

  • 相关阅读:
    递归汉诺塔问题
    递归求数组最大的那个数
    递归
    Overriding the Virtual Mechanism
    Shell中while循环的done 后接一个重定向<
    [转]【网络协议】TCP分段与UDP/IP分片 (MTU最大传输单元,MSS最大分段大小)
    vs2013一点事情
    深入理解JS中的变量作用域
    速效救心丸之django post 403
    速效救心丸之read
  • 原文地址:https://www.cnblogs.com/fmgao-technology/p/9181855.html
Copyright © 2020-2023  润新知