[Python] tqdm nested progress bar 해보기
2020. 1. 4. 18:32ㆍ분석 Python/Visualization
분석하다보면 Loop를 돌릴 일이 많고, 얼마나 진행했는지 보고 싶을 때가 있다.
nested 형태로 되어있는 형태에서 돌릴 때 폼이 예제다. jupyter notebook 버전과 command 버전 2개를 소개한다.
추가로 progress bar에 색깔을 넣어봤다. print를 중간에 하면 폼이 깨지기 때문에 보고자 하는 것은 log로 보내버렸다.
Command Version
import time
import sys
from tqdm import trange
from IPython.display import clear_output
import random
from colorama import Fore
import logging
import logging.handlers
log = logging.getLogger('sr_log')
log.setLevel(logging.DEBUG)
fileHandler = logging.FileHandler('./log.txt' , mode= "w")
log.addHandler(fileHandler)
# Cross-platform colored terminal text.
color_bars = [
Fore.BLACK,
Fore.RED,
Fore.GREEN,
Fore.YELLOW,
Fore.BLUE,
Fore.MAGENTA,
Fore.CYAN,
Fore.WHITE]
def do_something():
time.sleep(1)
def do_another_something():
time.sleep(0.1)
bar_format="{l_bar}%s{bar}%s{r_bar}" % (color_bars[2], Fore.RESET)
for i in trange(10 , file=sys.stdout, unit_scale=True , leave= True ,
desc='outer loop' , bar_format = bar_format):
do_something()
form = random.sample(color_bars , 1 )[0]
bar_format="{l_bar}%s{bar}%s{r_bar}" % (form, Fore.RESET)
for j in trange(100,file=sys.stdout, leave= False , bar_format = bar_format ,
unit_scale=True, desc='inner loop'):
do_another_something()
if (j % 50 == 0) & (j>0) :
log.info("hp")
NOTEBOOK Version
from tqdm.notebook import trange, tqdm
from time import sleep
for i in trange(3, desc='1st loop'):
for j in tqdm(range(100), desc='2nd loop' , leave = False):
sleep(0.01)
728x90
'분석 Python > Visualization' 카테고리의 다른 글
[ Python ] 시각화 여러 개의 그래프 형태 - 1 (0) | 2020.01.12 |
---|---|
[ Python ] 이미지들을 동영상으로 만들기 (images -> mp4) (0) | 2020.01.11 |
[ Python ] 2개 모델 확률값 사후 해석 시각화 그려보기 (0) | 2020.01.04 |
[ Python ] matplotlib tick 값 수정하기 (dir, help) (0) | 2019.12.18 |
[ Python ] seaborn catplot 을 활용하여 시각화하기 (0) | 2019.12.01 |