Blanktar

  1. top
  2. blog
  3. 2013
  4. 01

pythonのコンソールでプログレスバー的なもの

pythonでさ、プログレスバー書きたくなる事あるじゃないですか。 というわけでstarで使ってるロジックをご紹介。 ていってもまあ、すごいしょーもない内容ですが。

追記

starの公開は終了しています。

#!/usr/bin/python

import sys
import time

def PutBar(per, barlen):
    perb = int(per/(100.0/barlen))

    s = '\r'
    s += '|'
    s += '#' * perb
    s += '-' * (barlen - perb)
    s += '|'
    s += ' ' + (str(per) + '%').rjust(4)

    sys.stdout.write(s)

for per in range(100):
    PutBar(per, 50)
    time.sleep(0.1)
PutBar(100, 50)

以上、これだけだ。 \r、つまりキャリッジリターンってやつ。復帰だっけ? 左端にカーソルを戻してから、プログレスバーを描画・・・っていうか、書き込む訳ですな。

\r|##########----------|  50%

的なね。 ご活用くださひ。