파일을 옮긴다거나 무슨 처리를 할 때 시간이 오래 걸리는 경우에 진행률을 표시하고 싶은 경우가 있습니다. GUI 환경에서 진행 바를 표시하거나 프로세스 바를 표시할 수도 있지만 간단히 콘솔에서 문자열로 표시하고 싶은 경우를 다루어보겠습니다. (바로 아래와 같이! 👏)
먼저 궁금하신 분들을 위해서 바로 코드부터 공개해드리도록 하겠습니다.
소스 코드
from time import sleep
for i in range(100):
msg = '\r진행률 %d%%'%(i+1)
print(msg,end='')
sleep(0.1)
위 코드가 전부입니다. 간단하게 구현을 할 수 있습니다.
코드 설명
- 먼저 sleep을 import 해줍니다. sleep은 프로그램을 잠시 멈추어서 진행 상황이 잘 표시되는지를 눈으로 확인하기 위해서 사용했습니다. (실무에서는 진행되는 상황에 맞게 계산을 해서 사용하면 되겠습니다.)
- 이후 반복문에서 100번 반복하면서 100%까지 출력합니다.
- msg의 형식 : 먼저 \r은 캐리지 리턴문자로 캐럿을 맨 앞줄로 이동시킵니다. (참고로 \n은 캐럿을 다음 행으로 이동시키죠.) 그래서 같은 행에서 퍼센트만 올라가는 것처럼 보이게 할 수 있습니다.
for i in range(100,0,-1):
msg = '\r진행률 %d%%'%(i+1)
print(' '*len(msg),end='')
print(msg,end='')
sleep(0.1)
물론 거꾸로도 가능합니다. 이때는 문자열이 남게되므로 빈칸을 문자열의 길이만큼 출력한 뒤에 출력해야 합니다. 그러면 아래처럼 된답니다. 😉 이런 식으로 진행률을 표시할 일은 없겠지만 말입니다.
흠. 다른 재밌는 글들도 보고 가셔도 좋습니다. 😃
'Python' 카테고리의 다른 글
키워드 분포(Keyphrase distribution) 분석 구현 (Yoast SEO) (2) | 2023.03.18 |
---|---|
[python] 2진수 8진수 16진수 정수형 (0) | 2020.04.01 |
[python] 파이썬 None 개념 1분만에 알고 가기 👶 (0) | 2020.03.31 |
[python] for else 구문은 처음 보네 😶 (3) | 2020.03.30 |
python ECDSA library Examples of use (0) | 2018.06.04 |