본문 바로가기
파이썬 (Python)/General

Python 파이썬 - Progress Bar 구현하기 + tqdm 모듈 이용하기

by ★√★ 2021. 2. 20.

안녕하세요, Davey입니다. 지난 번에 PyQt5에서 Progress Bar를 사용하는 방법에 대해서 설명을 드렸는데요, 좀 더 찾아 보니, python안에서도 progress bar를 손쉽게 하지만 약간은 그래픽적(?)으로는 떨어지는 tool이 있있어서 설명 드릴려고 합니다. 바로 tqdm 모듈입니다. 혹자는 그래픽적(?)으로 딸리니까, 효용이 없다라고 생각하시는 분들도 계시는데, 나름 대로 장점은, PyQt5를 사용하지 않고, 자체적으로 사용이 가능하니까, 이 모듈만의 편의성이 있다라고 생각합니다. 일단 해보시면 신기하실 거예요. 그럼 차근 차근 설명 드리도록 하겠습니다.

 


 

Python 파이썬 - Progress Bar 구현하기 + tqdm 모듈 이용하기

 

 

1. tqdm 모듈 이용하기

 

: python 내부창에서 progress bar를 간편하게 이용하려면, tqdm을 이용하시면 됩니다. 주 기능은 반복문을 이용해서, 늘어난 수치를 Progress Bar로 표현해주는 현식이라고 생각하시면 됩니다. 관련 공식 문서 Link는 아래 공유 드리도록 하겠습니다. 

 

[ Progress Bar 구현하기 + tqdm 모듈 공식 문서 Link tqdm.github.io/]

 

tqdm documentation

tqdm tqdm means "progress" in Arabic (taqadum, تقدّم) and is an abbreviation for "I love you so much" in Spanish (te quiero demasiado). Instantly make your loops show a smart progress meter - just wrap any iterable with tqdm(iterable), and you're done

tqdm.github.io

 


2. 예제를 통해서 tqdm 모듈 이용하기 - trange() 함수

 

:  예제를 통해서 tqdm 모듈 이용하는 방법을 쉽게 설명해드리도록 하겠습니다. 여기에서 사용할 함수는, tqdm() 과 trange를 사용할 예정입니다. 아래 코드 블럭 보시고, 따라해보시면 됩니다. 각 코드 라인마다, 주석이 필요한 부분은 주석처리해서 정리하였습니다. 일단 trange() 함수를 이용한 progress bar를 보여드리도록 하겠습니다.

 

# python 내부에서 보여줄 수 있는 progress bar를 위한 모듈을 import 함

 

import time # time delay를 주기 위해서 사용, 여기에는 time.sleep()을 사용

 

#필요한 함수 tqdm(), trange() 이용하기

from tqdm import tqdm

from tqdm import trange

 

ProgressBar_Status = 0

for changed_range in trange(10): #100을 10으로 나눠서 보여줌

    time.sleep(1) # 보여주는 속도를 조절함.

   

    ProgressBar_Status += changed_range # 단순 for문 계산을 하기 위한 식임. 없어도 progress bar의 기능과 무관. 그냥 확인 용도.

   

print(ProgressBar_Status) #최종 합을 보고 for 문이 잘 돌아 갔는지 Double Check 용도

trange()함수 Demonstration 구현 화면


 

3. 예제를 통해서 tqdm 모듈 이용하기 - tqdm() 함수

 

- 다음은, 일단 tqdm() 함수를 이용한 progress bar를 보여드리도록 하겠습니다. trange()와 크게 다른 점은, tqdm()함수는 range()자체를 하나의 변수로 보는 것입니다. 아래 코드 블로 참조 부탁 드립니다.

 

# python 내부에서 보여줄 수 있는 progress bar를 위한 모듈을 import 함

 

import time # time delay를 주기 위해서 사용, 여기에는 time.sleep()을 사용

 

#필요한 함수 tqdm(), trange() 이용하기

from tqdm import tqdm

from tqdm import trange

 

ProgressBar_Status = 0

for changed_range in tqdm(range(10)): #100을 10으로 나눠서 보여줌

    time.sleep(1) # 보여주는 속도를 조절함.

   

    ProgressBar_Status += changed_range # 단순 for문 계산을 하기 위한 식임. 없어도 progress bar의 기능과 무관. 그냥 확인 용도.

   

print(ProgressBar_Status) #최종 합을 보고 for 문이 잘 돌아 갔는지 Double Check 용도

tqdm()함수 Demonstration 구현 화면



 이상입니다. 실적으로, 누구에게 보여주거나, 배포용으로 만들거면, 이전 포스팅에서 설명 드렸던, QprogressBar 모듈을 이용하는 게 더 좋을 거라고 생각합니다. 이번에 소개드린 것은, 속도를 측정하거나, 시스템 내부적으로 progress를 측정하기 위해서 사용하는데 이용하시면 될 거 같습니다. 그럼 공부하느라고 수고 하셨습니다. 같이 공부하고 같이 성장하시죠! 감사합니다.

 

[참조 자료 출처 : https://github.com/tqdm/tqdm]

 

 

  Posting 조금이나마 정보 전달에 도움이 되셨길 빌며되셨다면구독댓글공감 3 세트 부탁 드립니다감사합니다.

 

[저작권이나권리를 침해한 사항이 있으면 언제든지 Comment 부탁 드립니다검토  수정  삭제 조치 하도록 하겠습니다그리고기재되는 내용은 개인적으로 습득한 내용이므로 오류가 발생할  있을 가능성이 있으므로기재된 내용은 참조용으로만 봐주시길 바랍니다게시물에오류가 있을때도, Comment 달아 주시면검증 결과를 통해수정하도록 하겠습니다.]

728x90

댓글


// 내부링크를 현재창으로 열기 // Open internal links in same tab