문제:
콘솔 애플리케이션에서 진행 상황을 어떻게 표시할 수 있습니까? 이전에 인쇄된 내용을 방해하지 않고 ftplib를 사용하여 파일을 업로드하거나 다운로드할 때 표시줄 text?
해결책:
콘솔 출력을 유지하면서 업데이트되는 사용자 정의 가능한 진행률 표시줄을 만들려면 다음을 고려하세요.
옵션 1 : 단일 통화
def progressBar(iterable, prefix="", suffix="", decimals=1, length=100, fill="█", printEnd="\r"): """ Single-call progress bar function. Args: iterable (Iterable): Iteratable object. prefix (str): Prefix string. suffix (str): Suffix string. decimals (int): Number of decimals in percent complete. length (int): Character length of bar. fill (str): Fill character. printEnd (str): End character. """ total = len(iterable) def printProgressBar(iteration): percent = "{0:.{1}f}".format(100 * (iteration / float(total)), decimals) 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()
사용 예:
import time items = list(range(57)) for item in progressBar(items, prefix="Progress:", suffix="Complete", length=50): # Do stuff... time.sleep(0.1)
옵션 2: 다중 통화
def printProgressBar(iteration, total, prefix="", suffix="", decimals=1, length=100, fill="█", printEnd="\r"): """ Progress bar printing function. Args: iteration (int): Current iteration. total (int): Total iterations. prefix (str): Prefix string. suffix (str): Suffix string. decimals (int): Number of decimals in percent complete. length (int): Character length of bar. fill (str): Fill character. printEnd (str): End character. """ percent = "{0:.{1}f}".format(100 * (iteration / float(total)), decimals) filledLength = int(length * iteration // total) bar = fill * filledLength + "-" * (length - filledLength) print(f"\r{prefix} |{bar}| {percent}% {suffix}", end=printEnd) if iteration == total: print()
예시 사용법:
import time items = list(range(57)) # Initial call to print 0% progress printProgressBar(0, len(items), prefix="Progress:", suffix="Complete", length=50) for i, item in enumerate(items): # Do stuff... time.sleep(0.1) printProgressBar(i + 1, len(items), prefix="Progress:", suffix="Complete", length=50)
두 옵션 모두 이전 콘솔 출력을 덮어쓰지 않고 동적으로 업데이트하는 사용자 정의 가능한 진행률 표시줄을 제공합니다.
위 내용은 이전 출력을 덮어쓰지 않고 Python에서 사용자 정의 가능한 터미널 텍스트 진행률 표시줄을 만드는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!