python实现下载进度条
import sys
import time
print('程序开始:')
for j in range(50):
sys.stdout.write('
下载:{}'.format(('='*j)))
sys.stdout.flush()
time.sleep(0.3)
print('
程序结束')
案例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 = '
[%s>%s]' % ("=" * num, " " * (100 - num - 1)) # 进度条封装
if num == 100:
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('
下载完成。')
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('
{}{}'.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('
{}'.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)