> 백엔드 개발 > 파이썬 튜토리얼 > Python을 사용하여 터미널에 텍스트 진행률 표시줄을 만드는 방법은 무엇입니까?

Python을 사용하여 터미널에 텍스트 진행률 표시줄을 만드는 방법은 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2024-12-02 17:26:12
원래의
678명이 탐색했습니다.

How to Create a Text Progress Bar in Your Terminal Using Python?

블록 문자가 있는 터미널의 텍스트 진행률 표시줄

소개

터미널에 진행률 표시줄을 만들면 시각적인 내용을 제공하여 사용자 경험을 크게 향상시킬 수 있습니다. 작업 진행 상황을 나타냅니다. 그러나 진행률 표시줄을 업데이트하는 동안 이전 콘솔 출력의 무결성을 유지하는 것은 어려울 수 있습니다. 이 문서에서는 이전 텍스트를 유지하면서 Python에서 진행률 표시줄을 만드는 방법을 살펴봅니다.

해결책: 사용자 정의 진행률 표시줄 기능

다음은 문제를 해결하는 재사용 가능한 진행률 표시줄 기능입니다.

def printProgressBar(iteration, total, prefix='', suffix='', decimals=1, length=100, fill='█', printEnd='\r'):
    percent = ("{0:." + str(decimals) + "f}").format(100 * (iteration / float(total)))
    filledLength = int(length * iteration // total)
    bar = fill * filledLength + '-' * (length - filledLength)
    print(f'\r{prefix} |{bar}| {percent}% {suffix}', end=printEnd)
    if iteration == total:
        print()
로그인 후 복사

기능 매개변수:

Parameter Description
iteration Current iteration of the loop
total Total number of iterations
prefix Prefix text before the progress bar
suffix Suffix text after the progress bar
decimals Number of decimal places for percentage
length Width of the progress bar
fill Character used to fill the progress bar
printEnd End of line character (e.g., 'r')

사용법:

진행률 표시줄을 사용하려면 루프 내에서 함수를 호출하세요.

total_items = 100

for item in range(total_items):
    # Do your processing here...
    printProgressBar(item + 1, total_items)
로그인 후 복사

단일 호출 버전:

간단한 사용 사례의 경우 진행 상황의 단일 호출 버전을 고려하세요. bar:

def progressBar(iterable, prefix='', suffix='', decimals=1, length=100, fill='█', printEnd='\r'):
    total = len(iterable)
    def printProgressBar(iteration):
        percent = ("{0:." + str(decimals) + "f}").format(100 * (iteration / float(total)))
        filledLength = int(length * iteration // total)
        bar = fill * filledLength + '-' * (length - filledLength)
        print(f'\r{prefix} |{bar}| {percent}% {suffix}', end=printEnd)
    printProgressBar(0)
    for i, item in enumerate(iterable):
        yield item
        printProgressBar(i + 1)
    print()

for item in progressBar(range(100)):
    # Do your processing here...
로그인 후 복사

이 버전에서는 진행률 표시줄을 0%로 설정하기 위한 초기 호출이 필요하지 않으며 반복 가능 항목을 입력으로 허용합니다.

Python 2 호환성:

Python 2의 경우 호환성이 있는 경우 Python 3 문자열 대신 다음 코드를 사용하세요. 형식 지정:

print('\r%s |%s| %s%% %s' % (prefix, bar, percent, suffix), end=printEnd)
로그인 후 복사

결론:

제공된 기능을 활용하면 이전 텍스트가 지워지는 것을 방지하면서 텍스트 진행률 표시줄을 콘솔 애플리케이션에 쉽게 통합할 수 있습니다. 사용자 정의 가능한 매개변수를 사용하면 특정 요구 사항에 맞는 맞춤형 진행 표시줄 모양을 만들 수 있습니다.

위 내용은 Python을 사용하여 터미널에 텍스트 진행률 표시줄을 만드는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿