>백엔드 개발 >파이썬 튜토리얼 >Python에서 콘솔 출력을 카운터 및 진행률 표시줄로 바꾸는 방법은 무엇입니까?

Python에서 콘솔 출력을 카운터 및 진행률 표시줄로 바꾸는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-03 14:51:30211검색

How to Replace Console Output with a Counter and Progress Bar in Python?

Python에서 콘솔 출력 교체

Python의 다재다능한 특성 덕분에 사용자 정의 콘솔 출력을 특정 요구에 맞게 조정할 수 있습니다. 한 가지 일반적인 기술은 제자리에서 업데이트되는 동적 콘솔 카운터를 생성하는 것입니다.

쿼리: 출력을 카운터로 바꾸기

콘솔 출력을 진행률 카운터로 바꾸려면 루프를 사용하면 됩니다. 각 반복을 수행한 후 상태 메시지를 표시하도록 수정되었습니다. 각 상태에 대한 새 줄이 포함된 이전 출력과 달리 이 카운터는 마지막으로 표시된 줄만 업데이트합니다.

해결책: 'r' 사용

한 가지 간단한 방법 해결 방법은 새 상태 메시지 앞에 캐리지 리턴 문자 "r"을 삽입하고 개행 문자를 피하는 것입니다. 이렇게 하면 문자열이 짧아지지 않고 문자열의 길이가 일정하게 유지될 것으로 예상되는 경우 실행 가능한 접근 방식이 됩니다.

예:

import sys

for i in range(5):
    sys.stdout.write("\rDoing thing %d" % i)
    sys.stdout.flush()

향상된 솔루션 : 진행 표시줄

보다 정교한 진행 표시를 위해 진행 표시줄을 구현할 수 있습니다. 다음 코드는 간단한 진행률 표시줄 기능을 제공합니다.

def start_progress(title):
    sys.stdout.write(title + ": [" + "-" * 40 + "]" + chr(8) * 41)
    sys.stdout.flush()
    progress_x = 0

def progress(x):
    global progress_x
    x = int(x * 40 // 100)
    sys.stdout.write("#" * (x - progress_x))
    sys.stdout.flush()
    progress_x = x

def end_progress():
    sys.stdout.write("#" * (40 - progress_x) + "]\n")
    sys.stdout.flush()

start_progress 함수는 제목 설명으로 진행률 표시줄을 초기화합니다. Progress(x)는 완료율(x)로 막대를 업데이트합니다. 마지막으로 end_progress는 진행률 표시를 완료합니다.

위 내용은 Python에서 콘솔 출력을 카운터 및 진행률 표시줄로 바꾸는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.