python使用tqdm模塊處理文件閱讀進(jìn)度條顯示
問(wèn)題提出
最近,使用tqdm模塊,對(duì)于大文件的閱讀進(jìn)行進(jìn)度監(jiān)控。然而我發(fā)現(xiàn)有個(gè)問(wèn)題,即在tqdm模塊使用一定沒(méi)錯(cuò)的情況下,進(jìn)度條死活打印不出來(lái)。
情況如下:

如上圖所示,這樣read file是沒(méi)有進(jìn)度條顯示的。
問(wèn)題解決
先說(shuō)為什么,再說(shuō)怎么解決。
為什么沒(méi)有進(jìn)度條
tqdm模塊的進(jìn)度條顯示,是依賴(lài)于已知可迭代模塊的總迭代數(shù)的。如迭代一個(gè)list,該list有支持len()方法獲取其長(zhǎng)度,這樣,進(jìn)度條才能正確顯示。
但read file的思路顯然不是這樣。因?yàn)閞ead file的時(shí)候的迭代器,是每次閱讀以一個(gè)\n為結(jié)尾的一行內(nèi)容,當(dāng)沒(méi)有newline的時(shí)候,迭代器結(jié)束迭代。這樣一來(lái),read file的迭代器肯定無(wú)法自動(dòng)提供len()方法,以獲取其迭代器的iter數(shù)。
如何解決
當(dāng)然就是先提前獲取行數(shù)咯。這個(gè)東西沒(méi)什么捷徑,唯一好的方法,可能就是
num_file = sum([1 for i in open("your-file-path.txt", "r")])
然后將num_file傳到tqdm中,賦值給total關(guān)鍵詞即可。
具體如圖

以上就是python使用tqdm模塊處理文件閱讀進(jìn)度條顯示的詳細(xì)內(nèi)容,更多關(guān)于python tqdm閱讀進(jìn)度條的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python使用matplotlib實(shí)現(xiàn)交換式圖形顯示功能示例
這篇文章主要介紹了Python使用matplotlib實(shí)現(xiàn)交換式圖形顯示功能,結(jié)合實(shí)例形式詳細(xì)分析了Python基于matplotlib模塊的數(shù)值運(yùn)算與圖形繪制相關(guān)操作技巧,需要的朋友可以參考下2019-09-09
python獲取命令行輸入?yún)?shù)列表的實(shí)例代碼
今天小編就為大家分享一篇python獲取命令行輸入?yún)?shù)列表的實(shí)例代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-06-06
python下載圖片實(shí)現(xiàn)方法(超簡(jiǎn)單)
下面小編就為大家?guī)?lái)一篇python下載圖片實(shí)現(xiàn)方法(超簡(jiǎn)單)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07

