最简洁的代码:
for i in range(1000): print("\r"+str(i), end="", flush=True) # print("\r",str(i),end="\r",flush=True) time.sleep(0.1)
这个不行:
for i in range(100):
print("\r"+str(i),end="\r")
这个也不行:
-
import time
-
for i in range(100000):
-
percent = 1.0 * i / 100000 * 100
-
print('complete percent:%10.8s%s'%(str(percent),'%'),end='\r')
-
time.sleep(0.1)
#!/usr/bin/python3.6
# __*__uft8__*__
import sys
import time
def progress(percent, width=50):
'''进度打印功能'''
if percent >= 100:
percent = 100
show_str = ('[%%-%ds]' % width) % (int(width * percent / 100) * "#") # 字符串拼接的嵌套使用
print('\r%s %d%%' % (show_str, percent), end='')
# =========应用==========
data_size = 3030333 # 定义传输的数据,实际应用中这个值改一下就可以了
recv_size = 0
while recv_size < data_size:
time.sleep(0.01) # 模拟数据的传输延迟
recv_size += 1024 # 每次收1024
recv_per = int(100 * recv_size / data_size) # 接收的比例
progress(recv_per, width=30) # 调用进度条函数,进度条的宽度默认设置为30
另一种方法:
扫描二维码关注公众号,回复:
2791535 查看本文章
import time
import sys
for i in range(101):
sys.stdout.write('\r')
sys.stdout.write("%s%% [%s %s]" % (int(i % 50), int(i % 50) * '#',(51-int(i % 50))*" "))
sys.stdout.flush()
time.sleep(0.5)
sys.stdout.write('\n')