下载进度条

python实现下载进度条

import sys
import time

print('程序开始:')
for j in range(50):
    sys.stdout.write('\r下载:{}'.format(('='*j)))
    sys.stdout.flush()
    time.sleep(0.3)
print('\n程序结束')

  

案例2

import sys
import time


def view_bar(num, total):
    rate = num / total  # 得到现在的比率,0<rate<1
    rate_num = int(rate * 100)  # 将比率百分化,0<rate_num<100
    r = '\r[%s>%s]' % ("=" * num, " " * (100 - num - 1))  # 进度条封装
    if num == 100:
        r = '\r[%s>]' % ("=" * 99)  # 进度条封装
    sys.stdout.write(r)  # 显示进度条
    r2 = "%3s" % str(num) + '%'
    sys.stdout.write(r2)  # 显示进度百分比
    sys.stdout.flush()  # 使输出变得平滑


def downloading():
    print('开始下载...')
    for i in range(0, 101):
        time.sleep(0.2)
        view_bar(i, 100)
    print('\n下载完成。')


if __name__ == '__main__':
    downloading()

  

延伸:正在加载......

def dot_one_by_one(info_str):
    '''
    控制台上:在提示信息后面依次打点(6个)
    :param info_str: 提示信息
    :return:
    '''
    time.sleep(0.25)
    for i in range(6):
        sys.stdout.write('\r{}{}'.format(info_str, (i + 1) * "."))
        sys.stdout.flush()
        time.sleep(0.25)
    print()


def all_character_one_by_one(info_str):
    '''
    控制台上:将提示信息逐个显示
    :param info_str:提示信息
    :return:
    '''
    time.sleep(0.25)
    for i in range(len(info_str)):
        sys.stdout.write('\r{}'.format(info_str[:(i + 1)]))
        sys.stdout.flush()
        time.sleep(0.3)
    print()


str1 = "正在加载"
dot_one_by_one(str1)
all_character_one_by_one(str1)

  

posted @ 2018-01-10 09:43  安迪9468  阅读(175)  评论(0编辑  收藏  举报