網站首頁 編程語言 正文
問題提出
最近,使用tqdm模塊,對于大文件的閱讀進行進度監控。然而我發現有個問題,即在tqdm模塊使用一定沒錯的情況下,進度條死活打印不出來。
情況如下:
如上圖所示,這樣read file是沒有進度條顯示的。
問題解決
先說為什么,再說怎么解決。
為什么沒有進度條
tqdm模塊的進度條顯示,是依賴于已知可迭代模塊的總迭代數的。如迭代一個list,該list有支持len()方法獲取其長度,這樣,進度條才能正確顯示。
但read file的思路顯然不是這樣。因為read file的時候的迭代器,是每次閱讀以一個\n為結尾的一行內容,當沒有newline的時候,迭代器結束迭代。這樣一來,read file的迭代器肯定無法自動提供len()方法,以獲取其迭代器的iter數。
如何解決
當然就是先提前獲取行數咯。這個東西沒什么捷徑,唯一好的方法,可能就是
num_file = sum([1?for i in open("your-file-path.txt", "r")])
然后將num_file傳到tqdm中,賦值給total
關鍵詞即可。
具體如圖
原文鏈接:https://juejin.cn/post/7142524361998598157
相關推薦
- 2023-04-24 python中argparse模塊及action='store_true'詳解_python
- 2022-02-14 linux系統之進程管理詳解_Linux
- 2022-07-23 python實現雙向鏈表原理_python
- 2022-06-07 OpenStack虛擬機快照和增量備份實現方法_OpenStack
- 2022-10-04 .NET??Smobiler的復雜控件的由來與創造_ASP.NET
- 2022-03-27 Python中Tkinter布局管理grid的使用_python
- 2022-05-02 Numpy中創建數組的9種方式小結_python
- 2022-05-24 redis中的bitmap你了解嗎_Redis
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支