打印进度条 --sys模块

四 sys模块

1 sys.argv           命令行参数List,第一个元素是程序本身路径
2 sys.exit(n)        退出程序,正常退出时exit(0)
3 sys.version        获取Python解释程序的版本信息
4 sys.maxint         最大的Int值
5 sys.path           返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
6 sys.platform       返回操作系统平台名称
import sys
import time
for i in range(100):
    sys.stdout.write('
%s' %('#'*i))
    sys.stdout.flush()
    time.sleep(0.5)
进度条实现一:sys.stdout
import sys
import time
for i in range(100):
    time.sleep(0.5)
    print('
%s' %('#'*i),end='',file=sys.stdout,flush=True)
进度条实现二:print
复制代码
#=========知识储备==========
#指定宽度
print('<%-10.3f>' %3.22) #总宽度为10,保留3位小数点
#打印结果
#<3.220     >

#打印%号,用%%
width=10
print('<%%-%ds>' %width)
#打印结果
# <%-10s>

#嵌套的%
width=10
print(('<%%-%ds>' %width) %('hello'))
#打印结果
# <hello     >

#=========实现打印进度条函数==========
import sys
import time
def progress(percent,width=50):
    if percent >= 100:
        percent=100

    show_str=('[%%-%ds]' %width) %(int(width * percent / 100) * "#") #字符串拼接的嵌套使用
    print("
%s %d%%" %(show_str, percent),end='',file=sys.stdout,flush=True)


#=========应用==========
data_size=3030333
recv_size=0
while recv_size < data_size:
    time.sleep(0.001) #模拟数据的传输延迟
    recv_size+=1024 #每次收1024

    recv_per=int(100*(recv_size/data_size)) #接收的比例
    progress(recv_per,width=30) #进度条的宽度30
原文地址:https://www.cnblogs.com/52forjie/p/7439972.html