Progress Display — Rich 13.4.2 documentation
Rich 라이브러리 중에 Progress에 대한 공식 설명 페이지 링크
파이썬의 rich 라이브러리는 cmd 에 출력되는 내용에 색깔을 넣거나 간단한 이미지를 넣거나 하는 라이브러리다.
근데 제공되는 내용중에 progress 라는 클래스가 있는데 이걸활용하면 어떤 작업을 했을때, 소요시간을 실시간으로 볼 수 있고
진행률을 막대형태로 그려주기도 한다.
spinner라는것과 함께 쓰면 동그란 이미지가 돌아가는 모습으로 출력되서 동적인 느낌을 줄 수도 있다.
개요. 출력결과에 다양한 것을 나타낼 수 있는데,
Progress 변수 생성할 때 아래 생성자에 무엇을 넣냐에 따라 결과물이 달라짐.
동작 예시1)
소요시간만 측정해서 쭉 보여주는 코드
from rich.progress import Progress, SpinnerColumn, TimeElapsedColumn
import time
with Progress(f"output message", SpinnerColumn(), TimeElapsedColumn()) as progress:
task = progress.add_task("",total = 1)
cnt = 0
while not progress.finished:
cnt = cnt +1
print(cnt)
time.sleep(0.1)
if cnt == 20:
progress.update(task, completed=1)
위 코드에서 add_task를 선언할 때 뒤에 total 이라는 파라미터는 이 task가 완료되기 위해 필요한 step 이 몇개인지를 의미한다.
아래에 update 함수의 completed는 현재까지 완료된 step 값을 몇으로 셋팅하는지를 의미한다.
위에서 add task 할 때 토탈이 1 인데,
update에서 completed 를 1로 했으니 그말은 태스크 완료를 의미하게된다.
동작 예시2) 동작진행 결과에 따라 막대기 출력
from rich.progress import Progress, SpinnerColumn, TimeElapsedColumn , BarColumn, TimeRemainingColumn
import time
with Progress(f"output message",BarColumn(), SpinnerColumn(), TimeElapsedColumn() ) as progress:
task = progress.add_task("",total = 1)
cnt = 0
while not progress.finished:
cnt = cnt +1
print(cnt)
time.sleep(0.1)
progress.update(task, advance=0.1)
BarColumn = step이 완료될 수록 점점 막대기가 차오른다
add task 할 때 total이 1이다.
progress.update 함수에 advance 는 step 값을 의미한다.
그러니까.. 현재 완료된 값을 0.1씩 추가하는 거다.
위 예시의 경우 update 함수가 10번 불려야 total이 1이 되니까 태스크가 종료된다.
그리고 위 예시의 경우 예시1에서는 안썼던 BarColumn을 넣어서
advance로 step이 오를때마다 출력결과에 막대기가 하나씩 차게된다
동작 예시3) 진행률을 %로 표시 해줌
from rich.progress import Progress, SpinnerColumn, TimeElapsedColumn , BarColumn, TimeRemainingColumn,TaskProgressColumn
import time
with Progress(f"output message",BarColumn(),TaskProgressColumn(), SpinnerColumn(), TimeElapsedColumn() ) as progress:
task = progress.add_task("",total = 1)
cnt = 0
while not progress.finished:
cnt = cnt +1
print(cnt)
time.sleep(0.1)
progress.update(task, advance=0.1)
'프로그래밍 관련 > 파이썬' 카테고리의 다른 글
파이썬 path json (0) | 2023.07.19 |
---|---|
파이썬 정규표현식 - Group (0) | 2023.07.19 |
파이썬에서 배치파일 실행 - subprocess (0) | 2023.07.13 |
파이썬 정규표현식 괄호 내부 문자 추출하기 (0) | 2023.02.26 |
크롤링 (0) | 2023.02.26 |