한글로 쓰면 큰일나요. tqdm tqdm
업데이트:
그래서 대체 얼마나 진행된거야
- for문과 같은 반복문이 오랜 시간동안 작동하다보면, 이게 제대로 되고 있는건지 혹은 얼마나 걸리는건지 궁금한 경우가 많다.
- 특히 크롤러를 작동시킬 때 이런 경우가 많았다.
- 위의 문제점을 해결하기 위해 for문 끝에 몇 번 진행되었는지 표기하곤 했다.
- 예컨대 이런 식?
print('반복문 시작')
for i in range(5):
print('{}번째 완료'.format(i+1))
print('전체 완료')
- 이런 방식의 가장 큰 문제는, 반복 횟수가 많아지면 그만큼 출력창이 길어진다는 점이다.
tqdm 라이브러리
- 공부를 하다가, tqdm 라이브러리를 알게 되었다.
- 예전에 진행바 라이브러리가 있지 않을까 생각만 하고 찾아보지는 않았는데, 역시 파이썬엔 없는 게 없다…
- 사용법은 매우 간단하다.
1. 설치
- 일단 터미널에서 설치를 해줘야한다.
pip install tqdm
2. 라이브러리 임포트
from tqdm import tqdm_notebook
3. for문에 사용하기
- time.sleep과 for문을 통해 어떻게 작동하는지 간단하게 알아볼 수 있다.
import time
for i in tqdm_notebook(range(5)):
time.sleep(3)
- 위와 같이 얼마나 진행되는지 진행바를 통해 직관적으로 확인할 수 있다.
4. 진행바의 설명 추가
- 진행바의 왼쪽에 어떤 진행바인지 설명을 추가할 수 있다.
- desc 옵션을 사용하면 된다.
for i in tqdm_notebook(range(5), desc='진행'):
time.sleep(1)
5. 진행바 업데이트 주기
- 진행바가 너무 빠르게 업데이트 된다고 느낀다면, 이 주기를 설정할 수 있다.
- mininterval 옵션을 사용할 수 있고, default는 0.1초다.
for i in tqdm_notebook(range(300), mininterval=1):
time.sleep(0.01)
for i in tqdm_notebook(range(300), mininterval=0.01):
time.sleep(0.01)
- 둘의 차이를 보면 어떤 옵션인지 한 눈에 알 수 있다.
6. for문이 여러개일 때
- 반복문 안에 반복문이 있는 경우가 있다.
- 이런 경우에, 각 반복문에 tqdm을 적용하여 진행바를 띄울 수 있다.
for i in tqdm_notebook(range(3), desc='전체'):
time.sleep(0.2)
for n in tqdm(range(5), desc='{}번째'.format(i+1)):
time.sleep(0.2)
- 이제 tqdm문을 활용하여 어느정도 진행되었는지 한 눈에 확인하자.
- tqdm에 대한 github 문서 보러 가기
댓글남기기