文章目录Python -Python实现控制台进度条1、构建代码2、效果Python -Python实现控制台进度条 1、构建代码 #进度条 import time def prt(info): end = '\r' print(info, end=end) time.sleep(0.1) def ...

文章目录

Python - Python 实现控制台进度条

相关内容:Python 实用内容

python实现文本进度条 程序进度条 加载进度条 单行刷新功能,具体内容如下所示: 利用time库来替代某个程序 的进行过程,做实例, 思路是,简单打印出来程序进度 单行刷新关键是\r, python默认是print后换行,所以...
本文实例讲述了Python显示...最简单的办法就是,再输出完毕后,把光标移动到行首,继续在那里输出更长的进度条即可实现,新的更长的进度条把旧的短覆盖,就形成了动画效果。 可以想到那个转义符了吧,那就是\ r。 转义
python实现文本进度条 程序进度条 加载进度条 单行刷新功能,具体内容如下所示:利用time库来替代某个程序 的进行过程,做实例,思路是,简单打印出来程序进度单行刷新关键是\r,python默认是print后换行,所以加一...
python实现文本进度条 程序进度条 加载进度条 单行刷新功能,具体内容如下所示:
利用time库来替代某个程序 的进行过程,做实例,
思路是,简单打印出来程序进度
单行刷新关键是\r,
python默认是print后换行,所以加一个\r是光标回退到之前位置
import time
tm=10
print('{:-^18}'.format('开始'))
for i in range(tm+1):
a='#'*i
b='.'*(tm-i)
c=(i/tm)*100
print('\r{:^3.0f}%[{}->{}]'.format(c,a,b),end="")#记得要光标回退,这是python3的打法,python2的把最后的end=‘'改了就好
time.sleep(0.1)#这是模拟程序进程,可将time.sleep替换成程序进程
print('{:-^18}'.format('结束'))
没有\r的效果是
--------开始--------
0 %[->..........]
10 %[#->.........]
20 %[##->........]
30 %[###->.......]
40 %[####->......]
50 %[#####->.....]
60 %[######->....]
70 %[#######->...]
80 %[########->..]
90 %[#########->.]
100%[##########->]
--------结束--------
有\r的最终效果是
--------开始--------
100%[##########->]--------结束--------
这里最后两个重叠了,所以还要加一个换行就好了,最后一行改为、
print('\n'+'{:-^18}'.format('结束'))
ps:下面看下用python实现单行动态刷新文本进度条
TextProBar.py
import time
scale = 50
print("执行开始".center(scale // 2,"-"))
start = time.perf_counter()
for i in range(scale + 1):
a = "*" * i
b = "." * (scale - i)
c = (i / scale) * 100
dur = time.perf_counter() - start
print("\r{:^3.0f}%[{}->{}]{:.2f}s".format(c,a,b,dur),end = "")
time.sleep(0.1)
print("\n"+"执行结束".center(scale // 2,"-"))
\r:可以使打印后的光标退回到之前的位置覆盖之前的字符,不过会被IDLE屏蔽。所以要用命令行`执行
(IDLE本身是编写程序的开发环境,并不是程序运行的主要环境。正常运行程序我们要么通过双击要么通过控制台,一般很少直接通过IDLE来运行的。由于IDLE被设定为开发环境,为了保证其中参数的运行效果,所以就把其中一个效果\r给屏蔽了)
总结
以上所述是小编给大家介绍的python实现文本进度条 程序进度条 加载进度条 单行刷新,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
本文标题: python实现文本进度条 程序进度条 加载进度条 单行刷新功能
本文地址: http://www.cppcns.com/jiaoben/python/264363.html
本文实例讲述了Python实现采用进度条实时显示处理进度的方法。分享给大家供大家参考,具体如下: 前言 在大多数时候,我们的程序会一直进行循环处理。这时候,我们非常希望能够知道程序的处理进度,由此来决定接下来...
python实现文本进度条 程序进度条 加载进度条 单行刷新功能,具体内容如下所示:利用time库来替代某个程序 的进行过程,做实例,思路是,简单打印出来程序进度单行刷新关键是\r,python默认是print后换行,所以加一...
python实现文本进度条 程序进度条 加载进度条 单行刷新功能,具体内容如下所示:
利用time库来替代某个程序 的进行过程,做实例,
思路是,简单打印出来程序进度
单行刷新关键是\r,
python默认是print后换行,所以加一个\r是光标回退到之前位置
import time
tm=10
print('{:-^18}'.format('开始'))
for i in range(tm+1):
a='#'*i
b='.'*(tm-i)
c=(i/tm)*100
print('\r{:^3.0f}%[{}->{}]'.format(c,a,b),end="")#记得要光标回退,这是python3的打法,python2的把最后的end=‘'改了就好
time.sleep(0.1)#这是模拟程序进程,可将time.sleep替换成程序进程
print('{:-^18}'.format('结束'))
没有\r的效果是
--------开始--------
0 %[->..........]
10 %[#->.........]
20 %[##->........]
30 %[###->.......]
40 %[####->......]
50 %[#####->.....]
60 %[######->....]
70 %[#######->...]
80 %[########->..]
90 %[#########->.]
100%[##########->]
--------结束--------
有\r的最终效果是
--------开始--------
100%[##########->]--------结束--------
这里最后两个重叠了,所以还要加一个换行就好了,最后一行改为、
print('\n'+'{:-^18}'.format('结束'))
ps:下面看下用python实现单行动态刷新文本进度条
TextProBar.py
import time
scale = 50
print("执行开始".center(scale // 2,"-"))
start = time.perf_counter()
for i in range(scale + 1):
a = "*" * i
b = "." * (scale - i)
c = (i / scale) * 100
dur = time.perf_counter() - start
print("\r{:^3.0f}%[{}->{}]{:.2f}s".format(c,a,b,dur),end = "")
time.sleep(0.1)
print("\n"+"执行结束".center(scale // 2,"-"))
\r:可以使打印后的光标退回到之前的位置覆盖之前的字符,不过会被IDLE屏蔽。所以要用命令行`执行
(IDLE本身是编写程序的开发环境,并不是程序运行的主要环境。正常运行程序我们要么通过双击要么通过控制台,一般很少直接通过IDLE来运行的。由于IDLE被设定为开发环境,为了保证其中参数的运行效果,所以就把其中一个效果\r给屏蔽了)
总结
以上所述是小编给大家介绍的python实现文本进度条 程序进度条 加载进度条 单行刷新,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对【听图阁-专注于Python设计】网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
Python实现控制台进度条效果 此为封装好的类 使用时创建Progress类即可 请使用完成后及时删除 myProgress = Progress	#创建实例 myProgress.set(num)	#设置进度,范围为0-1,如果为1就会换行 del myProgress	#...
Python实现控制台进度条效果
此为封装好的类
使用时创建Progress类即可
请使用完成后及时删除
myProgress= Progress#创建实例 myProgress.set(num)#设置进度,范围为0-1,如果为1就会换行del myProgress#删除实例import sys #classProgress:""" 进度条类,按照IO的资源互斥,应该使类为单例,并且加锁,暂时简便设计\n 使用set设置进度,范围为0-1\n 在进度完成时,应当及时del对象\n """ title="" length=0 quantity=0def__init__(self, title="Progress",len=20): self.title= title self.length=len self.print()defset(self, quantity): quantity=1if quantity>1else quantity self.quantity= quantity self.print()defprint(self): mBody=round(self.quantity* self.length) mVoid= self.length- mBody sys.stdout.write('\r'+ self.title+': ['+ \'#'* mBody+'\u0020'* mVoid+']'+ \str(round(self.quantity*100))+'%') sys.stdout.flush()def__del__(self): sys.stdout.write("\n") sys.stdout.flush() self.title="" self.length=0 self.quantity=0#
原理
主要使用 sys.stdout.write() 写入输出缓冲区
然后使用 sys.stdout.flush() 更新输出缓冲区
其中使用 \r 转义字符用于回车
回车本是指返回当前行行首
但是在打字机过渡到电脑时,回车的意义变为了下一行行首
python实现 import sys, time n = 100 print("耐心等待......") for i in range(1, n): # \r回到当前行首的位置 rate = (i+1) / float(n) rate_str = str(int(rate * 100)) print("\r" +'完成率为: '+ rate_str...
第一种(简单).python实现简单的进度条的方法 import sys for i in range(101): s="\r%d%% %s"%(i,"#"*i) #\r表示回车但是不换行,利用这个原理进行百分比的刷新 sys.stdout.write(s) #向标准输出终端写...
一、普通进度条示例代码importsysimporttimedefprogress_bar():for i in range(1, 101):print("\r", end="")print("Download progress: {}%:".format(i), "" * (i // 2), end="")sys.stdout.flush()time.sleep...