반응형
질문
나의 스크립트가 시간이 걸릴 것으로 예상되는 작업을 수행할 때 진행 막대(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 노트북에서 연결을 끊은 후에도 진행 상황을 휴대폰으로 받을 수 있습니다.
반응형
댓글