본문 바로가기
Python/Python FAQ

Python 파이썬 진행 바, Python Progress Bar

by 베타코드 2023. 10. 7.
반응형

질문


나의 스크립트가 시간이 걸릴 것으로 예상되는 작업을 수행할 때 진행 막대(progress bar)를 어떻게 사용하나요?

예를 들어, 완료까지 시간이 걸리는 함수가 있고, 완료되면 True를 반환합니다. 이 함수가 실행되는 동안 진행 막대를 표시하는 방법이 있을까요?

실시간으로 표시해야 하므로 어떻게 해야 할지 모르겠습니다. 이를 위해 thread가 필요한가요? 잘 모르겠습니다.

현재 함수가 실행되는 동안 아무것도 출력하지 않고 있지만, 진행 막대가 있으면 좋을 것 같습니다. 또한 코드 관점에서 이를 어떻게 할 수 있는지에 더 관심이 있습니다.


답변


tqdm을 사용하면(conda install tqdm 또는 pip install tqdm), 루프에 진행 막대를 쉽게 추가할 수 있습니다:

from time import sleep
from tqdm import tqdm
for i in tqdm(range(10)):
    sleep(3)

 60%|██████    | 6/10 [00:18<00:12,  0.33 it/s]

또한, 노트북 버전도 있습니다:

from tqdm.notebook import tqdm
for i in tqdm(range(100)):
    sleep(3)

tqdm.auto를 사용하면 터미널과 노트북에서 모두 작동할 수 있습니다.

tqdm.contrib에는 enumerate, map, zip과 같은 작업을 수행하는 몇 가지 도우미 함수가 포함되어 있습니다. tqdm.contrib.concurrent에는 동시 매핑 함수가 있습니다.

tqdm.contrib.telegram 또는 tqdm.contrib.discord를 사용하여 jupyter 노트북에서 연결을 끊은 후에도 진행 상황을 휴대폰으로 받을 수 있습니다.

GIF showing an example of the output of using tqdm.contrib.telegram to display progress bar in Telegram mobile app

반응형

댓글