반복문을 돌리면 작업이 어디까지 진행된 건지, 되고는 있는 건지 궁금할 때가 많이 있습니다. 주피터 노트북 화면을 바라보며 반복문을 돌린 셀의 별표가 사라지길 계속 기다리기도 조금 답답합니다. 이럴 때 진행 상황을 확인하는 가장 쉬운 방법은 반복문 중간에 print 찍도록 코드를 작성하는 것입니다. 하지만 이 방법은 직관적으로 한눈에 진행 상황을 파악하기에는 무리가 있습니다.
파이썬에는 이럴 때 사용할 수 있는 tqdm 라이브러리가 있습니다. 이 라이브러리를 이용하면 진행 상황을 Progress Bar 형태로 한눈에 확인할 수 있습니다.
tqdm 라이브러리 설치
Jupyter NoteBook을 열고 빈 셀에 다음의 설치 코드를 입력하고 실행시키면 됩니다.
!pip install tqdm
# 이미 설치가 되어있다면 최신 버전으로 업그레이드를 할 수도 있습니다.
# !pip install tqdm --upgrade
기본 사용법
반복 가능한(iterable) 대상이라면 어느 것이든 tqdm 함수 넣고 실행하면 됩니다.
import time
from tqdm import tqdm
for i in tqdm(range(10)):
time.sleep(0.1)
리스트도 가능합니다. desc를 이용하여 설명을 추가할 수도 있습니다.
empty_list = []
for word in tqdm(['apple', 'ball', 'cat', 'doll', 'egg'], desc='iterate list'):
time.sleep(0.1)
empty_list.append(word)
반복문 밖에서 별도의 tqdm 인스턴스를 만들어서 실행시킬 수도 있습니다.
pbar = tqdm(['apple', 'ball', 'cat', 'doll', 'egg'])
for word in pbar :
time.sleep(0.1)
pbar.set_description(f'Processing {word}')
empty_list.append(word)
중첩된 반복문에서 사용하기
중첩된(nested) 반복문에서도 사용이 가능합니다.
for i in tqdm(range(2), desc='첫 번째 반복문'):
for j in tqdm(range(3), desc='두 번째 반복문'):
time.sleep(0.1)
주피터 노트북에는 tqdm을 조금 더 이쁘게 쓸 수 있다?!
주피터 노트북을 위한 tqdm submodule이 있습니다. 이것을 사용해서 진행상태바를 그리면 훨씬 보기에 좋습니다.
from tqdm import notebook
import time
for i in notebook.tqdm(range(100), desc='iterate range 100'):
time.sleep(0.01)
- 이 글은 아나콘다(Anaconda3)가 설치된 주피터 노트북에서 작성되었습니다.