进度条

 

import sys
import time

def view_bar(num,total):
    rate = num / total
    rate_num = int(rate * 100)
    r = '\r%d%%%s>' % (rate_num,'='*num)
    sys.stdout.write(r)
    sys.stdout.flush()

if __name__ == '__main__':
    for i in range(1,101):
        time.sleep(0.3)
        view_bar(i,100)
View Code

view_bar(num,total)
num是一个随即数,total是总数( num / total ) * 100 的int类型可以计算百分比

'\r%d%%%s' % (rate_num,'='*num)
\r代表始终在一行的开头进行输出
%d代表接收数字形式的百分比,与括号中的rate_num匹配
%%代表百分号%,要想输出特殊字符%需要在加一个用于转义。
%s与之后的'='*num进行匹配,用于输出一定数量的=>

sys.stdout.write(r)
代表没输出一行后不需要换行,直接输出即可。

sys.stdout.flush()
代表清空控制台内容,与sys.stdout.write(r)配合使用即可达到始终在一行的开头输出百分比数字的效果。

for循环中的time.sleep(0.3)
代表没0.3秒给出一个数字,用于计算百分比

 

 

posted @ 2019-03-25 12:47  p0pl4r  阅读(114)  评论(0)    收藏  举报