以前寫代碼的時候,希望在運行的時候多 print 出一些提示性信息,感覺滿屏顯示 debug 的信息特別炫酷,大家有沒有跟我一樣的感受?
但是漸漸從“菜鳥”變成“老狗”,堆代碼的經驗上去后,對這種炫酷的界面卻有點反感起來了。
現在已經懶得從一堆 debug 信息中選取對自己有用的信息了。
以前跑代碼,日志只用 debug 的信息都會存入,然而現在連 warning 都懶得看了。
我以前的代碼風格
這是以前我寫的爬 ppt 腳本的運行結果:
請求 url 得到 200 的響應碼之后,會顯示輸出一次
在 with open 實現存儲之后,再顯示輸出一次
一個文件爬取會輸出兩次信息,腳本運行之后也會有那種“炫酷”的感覺~
??
如果代碼運行有錯誤,當然顯示更多信息,會對排 bug 有更大的幫助,但是老是這么輸出顯示,就有點冗余了。
「對于一些跑量的腳本,把提示信息,換成進度條就香了?!?/strong>
代碼重構
重構前,先介紹下今天要用到的庫。
安裝
??
py2 使用安裝。
使用
在庫中,只用到它的「三個實例方法」,就可實現一個進度條的動作:
「start」 進度條初始化,給它一個目標上限值,例如到 100% 結束,max_value 參數給個 100 就 OK 了。
「update」 更新進度條進度,這個方法執行一次,進度條就會更新一次,value 參數就是要更新的值。
「finish」 關閉進度條,不想再對進度條進行操作,執行它。
代碼實例
上面的代碼,會執行 10 秒,每秒累加 10 次 1:
執行結果:
當然,這邊顯示的是已經運行完成的,實際效果這個進度條是動態增加的。
知道用法之后,把這個套路套進我原先的爬蟲代碼中:
(截取主要代碼)
運行腳本后:
??
代碼 finish 關閉進度條實例,達到 100% 后會自動退出。棒!我非常喜歡這樣的方式顯示。
定制化進度條
如果你覺得這樣的顯示有點怪,那就定制化它:
修改 widget 參數,并傳入。
??
Bar('+') :調用進度條步進框,并以‘+’符號顯示;
Timer() :已用時間;
ETA() :預計剩余時間;
Percentage() :進度百分比;
搞定!
- EOF -