<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
在日常執行程式的過程中常常涉及到迴圈迭代過程,對於執行時間很短的程式來說倒無所謂,但對於執行過程有明顯耗時的涉及迴圈迭代的程式,為其加上進度條(progress bar),是幫助我們監測程式碼執行進度以及處理中間異常錯誤非常實用的技巧。
本文就將為大家介紹Python中非常實用又風格迥異的兩個進度條相關庫——tqdm與alive-progress的主要用法。
tqdm是Python中所有進度條相關庫中最出名的,既然是最出名的,自然有它獨到之處。
tqdm不僅可以生成基礎的可在終端中顯示的進度條,還可以配合jupyter notebook和jupyter lab生成更加美觀的網頁互動部件形式的進度條,更是和pandas強強聯手,為pandas中的一些操作提供專有的進度條功能。
下面我們來對tqdm的主要功能進行介紹。
因為是第三方庫,首先需要利用pip install tqdm或 conda install -c conda-forge tqdm對其進行安裝,安裝完成後先來看看它最基本的用法:
利用tqdm.tqdm
,將for迴圈過程中進行迭代的物件簡單包裹,就實現了為迴圈過程新增進度條以及列印執行速度、已執行時間與預估剩餘執行時間等實用資訊的功能,同樣也可用於列表推導:
而針對迭代物件是range()
的情況,tqdm還提供了簡化版的trange()
來代替tqdm(range())
:
其附帶的引數desc還可以幫助我們設定進度條的說明文字:
而如果想要在迭代過程中變更說明文字,還可以預先範例化進度條物件,在需要重新整理說明文字的時候執行相應的程式:
但當迭代的物件長度一開始未知時,譬如對pandas中的DataFrame.itertuples()
進行迭代,我們就只能對其執行速度等資訊進行估計,但無法看到進度條遞增情況,因為tqdm不清楚迭代的終點如何:
tqdm對jupyter notebook和jupyter lab有著特殊的支援,且使用方法非常簡單,只需要將原有的from tqdm import XXX
的相應功能匯入格式修改為from tqdm.notebook import XXX
就可以了,以trange為例:
tqdm對pandas中的apply()
過程提供了特殊的支援,因為pandas中的apply()
本質上就是序列迴圈運算,你可以將pandas中的任何apply操作替換為progress_apply
,並且記住每個單獨的progress_apply
前要先執行tqdm.pandas()
,就像下面的例子一樣:
雖然與tqdm一樣都是為了給迴圈過程加上進度條而誕生的庫,但alive-progress相比tqdm增加了更多花樣繁多的動態效果,我們通過呼叫其專門提供的showtime()
函數可以檢視所有可用的動態進度條樣式:
同樣類似地可以檢視所有進度條樣式:
使用起來也是非常簡單,但與tqdm
用法區別很大,需要配合with關鍵詞,譬如下面我們使用到alive_progress中的alive_bar來生成動態進度條:
通過修改bar引數來改變進度條的樣式:
更多關於alive-progress的內容感興趣的朋友可以檢視官方說明:(https://github.com/rsalmei/alive-progress ),但比較遺憾的是目前的alive-progress只能在終端中執行,還沒有為jupyter開發更美觀的互動式部件,但你可以在譬如網路爬蟲等任務中使用它,效果也是很不錯的。
到此這篇關於如何在Python中妥善使用進度條的文章就介紹到這了,更多相關Python使用進度條內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45