Python3で進捗表示するライブラリ progressbar2

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

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

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

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

    インストール

    pipでインストール.

    [sourcecode language=”bash” title=””]
    $ sudo pip install progressbar2
    [/sourcecode]

    使い方

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

    基本の使い方

    [sourcecode language=”python” title=””]
    from progressbar import ProgressBar
    import time

    p = ProgressBar(100)

    for i in range(100):
    p.update(i+1)
    time.sleep(0.01)
    [/sourcecode]

    [sourcecode language=”text” title=””]
    100% (100 of 100) |###############################| Elapsed Time: 0:00:01 ETA: 0:00::0
    [/sourcecode]

    Queueサイズ分の進捗表示

    [sourcecode language=”python” title=””]
    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()
    [/sourcecode]

    [sourcecode language=”text” title=””]
    100% (12345 of 12345) |###########################| Elapsed Time: 0:00:00 Time: 0:00:00
    [/sourcecode]

    おわりに

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

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

    以上、Happy Hacking!!