본문 바로가기
인터넷/모바일/머신러닝

괜찮은 python용 progressive bar

by blade. 2020. 2. 5.

프로그램 뺑뺑이를 돌리다보면, 얼마나 돌아가고 있는지 궁금할 때가 있다. 그럴 때 쓰는게 progressive bar.

인터넷을 뒤져서 2개를 찾았다.

하나는 jupyter notebook에서 쓸 수 있지만 예정 시간이 안 나오는거, 다른 하나는 jupyter에서는 사용할 수 없지만 예쁘고 & 예정 시간도 출력되는거... 선택은 알아서.

 

1. 예쁘고 & 예정 시간도 출력됨. 하지만, jupyter notebook에서 출력 안 됨.

1
2
3
4
5
6
7
8
from alive_progress import alive_bar
import time
 
max = 10000
with alive_bar(max) as bar:
    for i in range(max):
        time.sleep(.01)
        bar()
cs

실행하면 이런 식으로 표시된다.

 

2. jupyter에서 사용 가능. 하지만 안 예쁘꼬, 예정 시간 안 나옴.

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# program : printProgress
# author  : https://gist.github.com/cocomice/9270ea38d9e6198a2c35aa4fdc087348
 
import sys
import time
 
def printProgress (iteration, total, prefix = '', suffix = '', decimals = 1, barLength = 100):
    formatStr = "{0:." + str(decimals) + "f}"
    percent = formatStr.format(100 * (iteration / float(total)))
    filledLength = int(round(barLength * iteration / float(total)))
    bar = '#' * filledLength + '-' * (barLength - filledLength)
    sys.stdout.write('\r%s |%s| %s%s %s' % (prefix, bar, percent, '%', suffix)),
    if iteration == total:
        sys.stdout.write('\n')
    sys.stdout.flush()   
    
max_cnt = 10000
 
for i in range1, max_cnt ):
    time.sleep(.01)
    printProgress(i, max_cnt, 'Progress:''Complete'150)

s