コンソール画面でプログレスバー的な表示をする

コンソール画面で時間のかかる処理をしているときに途中経過状態を示すプログレスバーを表示すると親切です。

下記のコードは pip install のときに出てくるようなコンソール出力を表示します。

import time

# 目盛りの数.
FULL_SCALE = 50

# ウェイト時間.
MSEC_WAIT = 0.03

num_total = 300
counter = 0

#--------------------------------------------------
for n in range( num_total ):
    time.sleep( MSEC_WAIT )
    counter += 1
    rate = counter / num_total
    tmp = int( rate * FULL_SCALE )
    
    #----------------------------------------------
    s0 = ""
    for n in range( tmp ):
        s0 += "="
    #----------------------------------------------
    s1 = ""
    for n in range( tmp, FULL_SCALE ):
        s1 += "-"
    #----------------------------------------------
    
    percent = int( rate * 100 )
    print( "\r[{0}{1}] {2}%".format( s0, s1, percent ), end = "" )

#--------------------------------------------------

print( "" )
print( "finish." )

下記のようなコンソール画面が表示されます。

[=============-------------------------------------] 25%
[=========================-------------------------] 50%
[======================================------------] 75%
[==================================================] 100%
finish.