일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 소프트웨어공학
- front-end
- next.js
- ai
- RSI
- LLM
- 볼린저 밴드
- ccxt
- 구조패턴
- frontend
- 디자인패턴
- 행동패턴
- 플러터
- 디자인 패턴
- 티스토리챌린지
- 변동성 기반 지표
- adx
- 어댑터 패턴
- pyQT
- Flutter
- behavioral pattern
- MACD
- design pattern
- Design Patterns
- 비트코인
- 모멘텀 기반 지표
- 추세 기반 지표
- 오블완
- Python
- pyqt6
변혁적인 삶
[Python | 유틸리티] tqdm으로 프로그래스 바를 추가해보자! 본문
📊 [Python | 유틸리티] tqdm으로 프로그래스 바를 추가해보자!
목차
- tqdm이란?
- tqdm 설치 방법
- 기본 사용법
- 커스터마이징
- 실제 활용 사례
- 마무리
tqdm이란?
tqdm은 Python에서 프로그래스 바(progress bar)를 쉽게 추가할 수 있도록 도와주는 라이브러리입니다. 반복문 실행 상태를 한눈에 확인할 수 있도록 직관적인 인터페이스를 제공하며, 터미널과 GUI에서 모두 사용 가능합니다. tqdm의 이름은 아랍어로 '진보'를 뜻한다고 합니다.
tqdm 설치 방법
tqdm 설치는 매우 간단합니다. 아래 명령어를 사용해서 설치해 줍니다:
pip install tqdm
설치가 완료되면 아래 명령어로 설치가 정상적으로 되었는지 확인할 수 있습니다:
python -m tqdm --version
기본 사용법
사용법은 간단합니다.
단순히 반복문에 tqdm을 추가하면 진행 상태를 확인할 수 있습니다. 간단한 예제를 보겠습니다:
from tqdm import tqdm
import time
# 반복문에 tqdm 추가
for i in tqdm(range(10)):
time.sleep(0.1) # 작업 시뮬레이션
실행하면 진행률과 남은 시간이 표시된 프로그래스 바가 출력됩니다.
커스터마이징
tqdm은 다양한 커스터마이징 옵션을 제공합니다. 아래 예제를 통해 메시지와 포맷을 커스터마이징해봅시다:
from tqdm import tqdm
import time
# tqdm 커스터마이징
for i in tqdm(range(10), desc="Processing", unit="iteration", ncols=80):
time.sleep(0.2)
이 코드는 desc로 메시지를 설정하고, unit으로 단위를 정의하며, ncols로 프로그래스 바의 너비를 조정합니다.
출력 예시
Processing: 0%| | 0/10 [00:00<?, ?iteration/s]
Processing: 10%|█████ | 1/10 [00:00<00:01, 8.82iteration/s]
Processing: 20%|██████████ | 2/10 [00:00<00:01, 7.45iteration/s]
Processing: 30%|███████████████ | 3/10 [00:00<00:01, 6.64iteration/s]
Processing: 40%|████████████████████ | 4/10 [00:00<00:00, 6.16iteration/s]
Processing: 50%|█████████████████████████ | 5/10 [00:01<00:00, 5.86iteration/s]
Processing: 60%|██████████████████████████████ | 6/10 [00:01<00:00, 5.68iteration/s]
Processing: 70%|███████████████████████████████████ | 7/10 [00:01<00:00, 5.56iteration/s]
Processing: 80%|████████████████████████████████████████| 8/10 [00:01<00:00, 5.46iteration/s]
Processing: 90%|████████████████████████████████████████| 9/10 [00:01<00:00, 5.40iteration/s]
Processing: 100%|████████████████████████████████████████| 10/10 [00:01<00:00, 5.35iteration/s]
실제로는 한줄로 %가 계속 업데이트 되며 나옵니다.(다른 print구문이 없는 경우)
실제 활용 사례
다음은 파일 다운로드 시 진행 상태를 표시하는 실제 예제입니다:
import requests
from tqdm import tqdm
url = "https://example.com/largefile.zip"
response = requests.get(url, stream=True)
# 파일 다운로드 프로그래스 바
with open("largefile.zip", "wb") as f:
total = int(response.headers.get('content-length', 0))
with tqdm(total=total, unit="B", unit_scale=True, desc="Downloading") as pbar:
for chunk in response.iter_content(chunk_size=1024):
f.write(chunk)
pbar.update(len(chunk))
이 코드는 큰 파일을 다운로드하면서 진행 상태를 보여줍니다. unit_scale=True는 단위를 자동 조정하여 보기 좋게 표시합니다.
출력 예시
Downloading: 0%| | 0.00/1.00M [00:00<?, ?B/s]
Downloading: 20%|████████ | 0.20/1.00M [00:00<00:01, 700kB/s]
Downloading: 40%|████████████████ | 0.40/1.00M [00:00<00:00, 800kB/s]
Downloading: 60%|████████████████████████ | 0.60/1.00M [00:01<00:00, 850kB/s]
Downloading: 80%|████████████████████████████████ | 0.80/1.00M [00:01<00:00, 880kB/s]
Downloading: 100%|███████████████████████████████████████████| 1.00/1.00M [00:01<00:00, 900kB/s]
마무리
tqdm은 Python에서 작업의 진행 상황을 직관적으로 보여주는 강력한 도구입니다. 간단한 사용법과 다양한 커스터마이징 옵션 덕분에 데이터 처리, 다운로드, 반복 작업 등 여러 상황에서 활용도가 높습니다. 이번 글을 통해 tqdm을 이해하고, 프로젝트에 적용해보세요!🕒
'프로그래밍 > Python' 카테고리의 다른 글
[Python | GUI] 3. PyQt6 버튼 이벤트 처리와 동적 동작 구현 (1) | 2024.11.28 |
---|---|
[Python | GUI ] 2. UI 파일을 Python에서 직접 로드하여 사용하기 (1) | 2024.11.27 |
[Python | GUI ] 1. PyQt6, Qt Designer를 이용한 GUI 프로그래밍 (0) | 2024.11.26 |
[Python | 패키지 관리] Poetry란 무엇인가? (0) | 2024.11.16 |
[Python] 코딩 테스트 필수 표준 라이브러리 소개 (1) | 2024.11.04 |