python进度条
2022/5/28 1:24:13
本文主要是介绍python进度条,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
def progress(index0,rowmax0,msg='',skip=0,refresh_time=1,bar_len=20): """ 展示进度条的自定义函数,接收6个参数 index0:当前的进度序号 rowmax0:总进度序号 msg:进度条附带显示的信息 skip:进度条从什么序号开始,默认是0,适用于中断后从断点继续工作的场合 refresh_time:多长时间刷新一次进度条,默认是1秒 bar_len:进度条长度,默认是20 """ global T global T0 try: cd_time=time.time()-T except: T0=time.time() T=time.time() cd_time=time.time()-T index=index0-skip index=1 if index==0 else index rowmax=rowmax0-skip if cd_time>refresh_time: T=time.time() progress=index/rowmax*100 starNum=int(bar_len*progress/100) minusNum=min(bar_len-starNum,bar_len) gap=max(time.time()-T0,0.001) remain=gap/index*(rowmax-index) d=remain/86400 h=remain/3600 m=remain/60 s=remain #left if d>2: left=d unit2='d' elif h>2: left=h unit2='h' elif m>10: left=m unit2='m' else: left=s unit2='s' #speed if gap/index>1: unit1='id' if gap/index<60: speed=gap/index unit0='s' elif gap/index<3600: speed=gap/index/60 unit0='m' else: speed=gap/index/3600 unit0='h' else: unit1='s' if index/gap<1000: speed=index/gap unit0='r' elif index/gap<1000000: speed=index/gap/1000 unit0='kr' else: speed=index/gap/1000000 unit0='mr' print('\r||%s%s|| %d/%d(%d), %.4f%%, %.2f%s left, %.2f %s/%s, %s.'%( '#'*starNum,'-'*minusNum,index0,rowmax0,skip,progress,left,unit2,speed,unit0,unit1,msg),end='') if index==rowmax: gap=max(time.time()-T0,0.001) T=None T0=None d=gap//86400 h=gap%86400//3600 m=gap%3600//60 s=gap%60 if gap/index>1: unit1='id' if gap/index<60: speed=gap/index unit0='s' elif gap/index<3600: speed=gap/index/60 unit0='m' else: speed=gap/index/3600 unit0='h' else: unit1='s' if index/gap<1000: speed=index/gap unit0='r' elif index/gap<1000000: speed=index/gap/1000 unit0='kr' else: speed=index/gap/1000000 unit0='mr' print('\rfinished, %dd %dh %dm %ds comsumed, %.2f %s/%s.'%(d,h,m,s,speed,unit0,unit1),end='') def progressReset(): global T global T0 T=time.time() T0=time.time() def progressEnd(): global T global T0 if T0==None: return None gap=time.time()-T0 T=None T0=None d=gap//86400 h=gap%86400//3600 m=gap%3600//60 s=gap%60 print('\nfinished, %dd %dh %dm %ds consumed.'%(d,h,m,s))
进度条的效果如下所示
||#####################-|| 245 out of 247, 99.1903%, 0d 0h 0m 0s remain..
这篇关于python进度条的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南
- 2024-11-16`PyMuPDF4LLM`:提取PDF数据的神器
- 2024-11-16四种数据科学Web界面框架快速对比:Rio、Reflex、Streamlit和Plotly Dash
- 2024-11-14获取参数学习:Python编程入门教程
- 2024-11-14Python编程基础入门