python 进度条_六种酷炫Python运行进度条
作者 |?行哥
來(lái)源 |?一行數(shù)據(jù)
之前行哥給大家推薦過(guò)一個(gè)windows神器,里面有個(gè)小功能是人生進(jìn)度條,可以看到2020年的進(jìn)度只剩下一半,那么你的代碼進(jìn)度還剩多少呢?
這不,行哥本文介紹了目前6種比較常用的進(jìn)度條,讓大家都能直觀地看到腳本運(yùn)行最新的進(jìn)展情況
1.普通進(jìn)度條
2.帶時(shí)間進(jìn)度條
3.tpdm進(jìn)度條
4.progress進(jìn)度條
5.alive_progress進(jìn)度條
6.可視化進(jìn)度條
1.普通進(jìn)度條
在代碼迭代運(yùn)行中可以自己進(jìn)行統(tǒng)計(jì)計(jì)算,并使用格式化字符串輸出代碼運(yùn)行進(jìn)度
import?sysimport?timedef?progress_bar():for?i?in?range(1,?101):????????print("\r",?end="")
????????print("Download?progress:?{}%:?".format(i),?"▋"?*?(i?//?2),?end="")
????????sys.stdout.flush()
????????time.sleep(0.05)
progress_bar()進(jìn)度條1
2.帶時(shí)間進(jìn)度條
導(dǎo)入time模塊來(lái)計(jì)算代碼運(yùn)行的時(shí)間,加上代碼迭代進(jìn)度使用格式化字符串來(lái)輸出代碼運(yùn)行進(jìn)度
import?timescale?=?50
print("執(zhí)行開(kāi)始,祈禱不報(bào)錯(cuò)".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"+"執(zhí)行結(jié)束,萬(wàn)幸".center(scale?//?2,"-"))進(jìn)度條2
3.tpdm進(jìn)度條
這是一個(gè)專(zhuān)門(mén)生成進(jìn)度條的工具包,可以使用pip在終端進(jìn)行下載,當(dāng)然還能切換進(jìn)度條風(fēng)格
from?time?import?sleepfrom?tqdm?import?tqdm#?這里同樣的,tqdm就是這個(gè)進(jìn)度條最常用的一個(gè)方法#?里面存一個(gè)可迭代對(duì)象for?i?in?tqdm(range(1,?500)):#?模擬你的任務(wù)???sleep(0.01)
sleep(0.5)
相關(guān)文檔:https://tqdm.github.io/
4.progress進(jìn)度條
你只需要定義迭代的次數(shù)、進(jìn)度條類(lèi)型并在每次迭代時(shí)告知進(jìn)度條即可,具體代碼案例如下
import?timefrom?progress.bar?import?IncrementalBarmylist?=?[1,2,3,4,5,6,7,8]
bar?=?IncrementalBar('Countdown',?max?=?len(mylist))for?item?in?mylist:
????bar.next()
????time.sleep(1)
????bar.finish()
相關(guān)文檔:https://pypi.org/project/progress/1.5/
5.alive_progress進(jìn)度條
顧名思義,這個(gè)庫(kù)可以使得進(jìn)度條變得生動(dòng)起來(lái),它比原來(lái)我們見(jiàn)過(guò)的進(jìn)度條多了一些動(dòng)畫(huà)效果,需要使用pip進(jìn)行下載,代碼案例如下:
from?alive_progress?import?alive_baritems?=?range(100)??????????????????#?retrieve?your?set?of?itemswith?alive_bar(len(items))?as?bar:???#?declare?your?expected?totalfor?item?in?items:???????????????#?iterate?as?usual#?process?each?item
????????bar()
????????time.sleep(0.1)
相關(guān)文檔:https://github.com/rsalmei/alive-progress
6.可視化進(jìn)度條
用 PySimpleGUI 得到圖形化進(jìn)度條,我們可以加一行簡(jiǎn)單的代碼,在命令行腳本中得到圖形化進(jìn)度條,也是使用pip進(jìn)行下載,代碼案例如下
import?PySimpleGUI?as?sgimport?time
mylist?=?[1,2,3,4,5,6,7,8]for?i,?item?in?enumerate(mylist):
????sg.one_line_progress_meter('This?is?my?progress?meter!',?i+1,?len(mylist),?'-key-')
????time.sleep(1)以上就給大家介紹了 6 中有趣的進(jìn)度條實(shí)現(xiàn),感興趣的小伙伴可以加到自己的程序中哦!
總結(jié)
以上是生活随笔為你收集整理的python 进度条_六种酷炫Python运行进度条的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 如何在Excel打印工作表
- 下一篇: Word如何输入印章(提供word/ex