你好,我是一位年轻人的头像

行行无别语,只道早还乡


paradoxt /a/ 163.com


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() 
    time.sleep(0.2)

  

mahua

 

 

 

    bar.py 

# -*- coding:utf-8 -*-

'''
@author Zhang Te 
Created on Jan 27 2016
'''

import sys

class ProgressBar:
    '''
    doc: This class has been created for something such as waiting for spyder or downloading music in python.
    '''

    def __init__(self,total = 0,count = 0,width = 1):

        self.total = total
        self.width = width
        self.count = count


    def reset_pram(self,total = 0,count = 0,width = 1):
        
        sys.stdout.write(' ' * ( self.total * self.width + 8) + '\r')
        sys.stdout.flush()
        self.total = total
        self.count = count
        self.total = total

    def move(self):
        
        if self.count != self.total:
            self.count += 1

    def bar_run(self):
        
        if self.count <= self.total:
            sys.stdout.write(' ' * self.count * self.width + '\r')
            sys.stdout.flush()

            sys.stdout.write('{0:3}/{1:3} '.format(self.count,self.total) )
            sys.stdout.write('#' * self.width * self.count + '-' * (self.total - self.count) * self.width + '\r')        
        
            sys.stdout.flush()
        else:
            self.count = self.total
    

 

posted @ 2016-01-27 21:10  行行无别语只道早还乡  阅读(423)  评论(0编辑  收藏  举报