[Python] 작업의 진행도를 확인할 수 있는 tqdm 모듈
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의 공식문서 를 참고하시면 도움이 될 것이라고 생각합니다.