Python의 진행률 표시 줄
-
Python에서
tdqm
모듈을 사용하여 진행률 표시 줄 만들기 -
Python에서
progressbar
모듈을 사용하여 진행률 표시 줄 만들기 - Python에서 자신 만의 함수를 만들어 진행률 표시 줄 만들기
프로그래밍 세계에서 우리는 많은 양의 코드로 작업합니다. 프로그램을 컴파일하고 실행하는 데 많은 시간이 걸릴 수 있습니다. 따라서 얼마나 많은 진전이 있었는지와 프로그램의 예상 완료 시간을 아는 것이 약간 도움이됩니다. 이러한 상황에서는 Python에서 진행률 표시 줄을 사용할 수 있습니다. 또한 프로그램이 중간에 중단되었는지 여부를 식별하는 데 도움이 될 수 있습니다.
Python에는이 작업에 도움이되는 프로그램의 간단한 진행률 표시 줄을 만드는 데 도움이되는 많은 라이브러리가 있습니다. 이 튜토리얼에서는 각 방법을 하나씩 설명합니다.
Python에서tdqm
모듈을 사용하여 진행률 표시 줄 만들기
tdqm
라이브러리에는 기본 진행률 표시 줄을 만들기위한 빠르고 효율적인 프레임 워크가 있습니다. 터미널, Python 노트북에서 잘 작동하며 Windows, Linux 및 macOS와 호환됩니다.
다음 코드에서는이 모듈의 함수를 사용하여 간단한 진행률 표시 줄을 만듭니다.
from time import sleep
from tqdm import tqdm
for i in tqdm(range(10)):
sleep(0.2)
루프를 반복하고 반복 할 때마다 진행률 표시 줄도 증가합니다. sleep()
함수는 지정된 몇 초 동안 컴파일러를 일시 중지하는 데 사용됩니다. 기본적으로 막대는 남은 시간, 초당 반복 및 백분율을 표시합니다.
이 튜토리얼에서 논의 된 모든 모듈 중에서이 모듈은 오버 헤드가 가장 적습니다.
Python에서progressbar
모듈을 사용하여 진행률 표시 줄 만들기
progressbar
모듈은tdqm
모듈과 같은 거의 모든 작업을 수행합니다. 이 외에도 진행률 표시 줄에 애니메이션을 적용하고 진행률 표시 줄에 표시되는 위젯을 사용하는 옵션이 있습니다.
다음 코드는 이에 대한 예를 보여줍니다.
import time
import progressbar
for i in progressbar.progressbar(range(100)):
time.sleep(0.02)
progressbar2
는 Python에도 존재하며progressbar
의 포크입니다. 강력하고 사용자 정의 가능한 기능으로 인해 매우 인기가 있습니다. 또한 진행률 표시 줄이있는 인쇄 문을 지원합니다. 단점은이 모듈이 수년 동안 유지되지 않았다는 것입니다.
진행률 표시 줄을 만드는 데 도움이 될 수있는alive-progress
,progress
와 같은 더 많은 라이브러리를 사용할 수 있지만이 두 라이브러리가 가장 자주 사용됩니다. 그들 사이의 유일한 차이점은 이러한 라이브러리가 제공하는 애니메이션 및 기타 사용자 정의입니다.
Python에서 자신 만의 함수를 만들어 진행률 표시 줄 만들기
진행률 표시 줄과 유사한 간단한 함수를 만들 수도 있습니다. 아래 코드는이를 구현합니다.
import time
import sys
def progressbar(it, prefix="", size=60, file=sys.stdout):
count = len(it)
def show(j):
x = int(size * j / count)
file.write("%s[%s%s] %i/%i\r" % (prefix, "#" * x, "." * (size - x), j, count))
file.flush()
file.write("\n")
show(0)
for i, item in enumerate(it):
yield item
show(i + 1)
file.write("\n")
file.flush()
for i in progressbar(range(15), "Computing: ", 40):
time.sleep(0.1)
출력:
Computing: [........................................] 0/15
Computing: [##......................................] 1/15
Computing: [#####...................................] 2/15
Computing: [########................................] 3/15
Computing: [##########..............................] 4/15
Computing: [#############...........................] 5/15
Computing: [################........................] 6/15
Computing: [##################......................] 7/15
Computing: [#####################...................] 8/15
Computing: [########################................] 9/15
Computing: [##########################..............] 10/15
Computing: [#############################...........] 11/15
Computing: [################################........] 12/15
Computing: [##################################......] 13/15
Computing: [#####################################...] 14/15
Computing: [########################################] 15/15
필요한 총 반복 횟수를 계산하고 반복 할 때마다#
기호를 증가시켜 인쇄합니다.
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn