tqdm

Python에서 작업을 진행할 때, 진행률을 볼 수 있는 tqdm 모듈에 대해 알아봅니다.

대량의 연산이나 데이터를 다룰때, 반복문을 사용하게 되면 시간이 오래걸려 진행이 얼마나 진행됐는지 궁금하거나, 혹시나 무한루프에 걸리지 않았는지 걱정이 들 때가 있습니다.

이럴때 사용할 수 있는 모듈이 tqdm 입니다.

우선 tqdm을 사용하기 위해서는 패키지를 설치해야합니다.

1
pip install tqdm

이제 tqdm을 사용하기 위해 import 해줍니다.

임의로 반복문의 시간을 늘리기 위해 time 모듈도 함께 불러옵니다.

1
2
from tqdm import tqdm
from time import sleep

tqdm의 사용법은 아주 간단합니다. for문을 사용할 때 문자열, 튜플, 리스트 등과 같은 시퀀스나 다른 iterable 객체를 tqdm으로 감싸주면 됩니다.

간단한 예시로 살펴보겠습니다.

1
2
for i in tqdm(range(10)):
    sleep(1)

다음과 같이 매우 간단하게 반복문의 진행도와 시간을 알아낼 수 있습니다.

그러면 이제 몇가지 다양한 사용법을 확인해보도록 합니다.

위와 같은 코드(tqdm + range 의 조합)는 좀더 간단하게 구현할 수 있도록 만들어져 있습니다.

1
2
3
# 위의 코드와 같은 동작
for i in trange(10):
    sleep(1)

진행도만 확인하는 것으로도 충분히 유용하다고 생각하지만 세부적인 내용을 약간 수정하는 법도 알아보겠습니다.


현재 어떤 반복문이 진행중인지 알아볼 수 있게 desc 를 사용해 다음과 같은 방법으로 명칭을 지정해줄 수 있습니다.

1
2
for i in tqdm(range(10), desc="1st loop"):
    sleep(1)

이번엔 진행상황에 다른 값을 표시해보도록 해봅니다.

1
2
3
4
pbar = tqdm(range(10), desc="1st loop")
for i in pbar:
    sleep(1)
    pbar.set_postfix({'i_sum':(2+i)})

set_postfix를 사용하게 되면 반복문이 진행되면서 변하는 값을 체크하는데에도 유용하게 사용할 수 있습니다.


이처럼 tqdm에는 다양한 강력한 기능들이 많이 있습니다. 좀 더 다양한 기능을 활용하고 싶으시다면 tqdm의 공식문서 를 참고하시면 도움이 될 것이라고 생각합니다.