アプリをつくりながらPythonを勉強中.

今日は、Queueから一つずつオブジェクトを取り出して処理するときに、進捗表示ができたらいいなと思い、そういうライブラリを探してみた。

progressbarというライブラリができそうなのだが、python3では動かなかった.

困っていたら、以下を見つけた. Python3で動作することを確認.

インストール

pipでインストール.

$ sudo pip install progressbar2

使い方

Exampleページを参考にいくつか試す.

基本の使い方

from progressbar import ProgressBar
import time

p = ProgressBar(100)

for i in range(100):
    p.update(i+1)
    time.sleep(0.01)
100% (100 of 100) |###############################| Elapsed Time: 0:00:01 ETA:  0:00::0

Queueサイズ分の進捗表示

from progressbar import ProgressBar
import queue

q = queue.Queue()

for i in range(12345):
    q.put(i)

p = ProgressBar(q.qsize()).start()

for i in range(q.qsize()):
    q.get()
    p.update(i)

p.finish()
100% (12345 of 12345) |###########################| Elapsed Time: 0:00:00 Time: 0:00:00

おわりに

自分で車輪の再発明をする前に、ネットでOSSが転がっていないか探すことが大事だと実感.

ほしいものは、大抵おちてる、それがオープンソースの世界.

以上、Happy Hacking!!