已有184人关注
1
发表在Python图书答疑 2020-04-28 《零基础学Python》第1章 初识Python
是否精华
版块置顶:

import sys, time


class ShowProcess(object):

    """

    显示处理进度的类

    调用该类相关函数即可实现处理进度的显示

    """

    #i = 0 # 当前的处理进度

    #max_steps = 0 # 总共需要处理的次数

    #max_arrow = 50 #进度条的长度


    # 初始化函数,需要知道总共的处理次数

    def __init__(self, max_steps):

        self.max_steps = max_steps    # 总共需要处理的次数

        self.max_arrow = 50    #进度条的长度

        self.i = 0    # 当前的处理进度


    # 显示函数,根据当前的处理进度i显示进度

    # 效果为[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>]100.00%

    def show_process(self, i=None):

        if i is not None:

            self.i = i

        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 = '\r' + '[' + '>' * num_arrow + '-' * num_line +']' + '%.2f' % percent + '%' #带输出的字符串,'\r'表示不换行回到最左边

        sys.stdout.write(process_bar) #这两句打印字符到终端

        sys.stdout.flush()

        self.i += 1


    def close(self, words='done'):

        print('')

        print(words)

        self.i = 1


if __name__=='__main__':

    max_steps = 1000


    process_bar = ShowProcess(max_steps)


    for i in range(max_steps + 1):

        process_bar.show_process()

        time.sleep(0.05)

    process_bar.close()


分享到:
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照