美文网首页
文字进度条的实现

文字进度条的实现

作者: MkTom | 来源:发表于2019-08-15 02:42 被阅读0次
    import sys, time
    class ShowProcess():
    
        i = 0 # 当前的处理进度
        max_steps = 0 # 总共需要处理的次数
        max_arrow = 50 #进度条的长度
        infoDone = 'done'
    
        # 初始化函数,需要知道总共的处理次数
        def __init__(self, max_steps, infoDone = 'Done'):
            self.max_steps = max_steps
            self.i = 0
            self.infoDone = infoDone
    
        # 显示函数,根据当前的处理进度i显示进度
        # 效果为[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>]100.00%
        def show_process(self, i=None):
            if i is not None:
                self.i = i
            else:
                self.i += 1
            num_arrow = int(self.i * self.max_arrow / self.max_steps) #计算显示多少个'>'
            num_line = self.max_arrow - num_arrow #计算显示多少个'-'
            percent = self.i * 100.0 / self.max_steps #计算完成进度,格式为xx.xx%
            process_bar = '[' + '>' * num_arrow + '-' * num_line + ']'\
                          + '%.2f' % percent + '%' + '\r' #带输出的字符串,'\r'表示不换行回到最左边
            sys.stdout.write(process_bar) #这两句打印字符到终端
            print(process_bar)
            sys.stdout.flush()
            if self.i >= self.max_steps:
                self.close()
    
        def close(self):
            print('')
            print(self.infoDone)
            self.i = 0
    
    if __name__=='__main__':
        max_steps = 100
    
        process_bar = ShowProcess(max_steps, 'OK')
    
        for i in range(max_steps):
            process_bar.show_process()
            time.sleep(0.1)
    
    
    

    相关文章

      网友评论

          本文标题:文字进度条的实现

          本文链接:https://www.haomeiwen.com/subject/liusxqtx.html