진행

2012-07-25 5 views
4

가능한 중복 :
Python Progress Bar진행

내가 루프 10,000 시간, 의를 실행하고 있지만, 루프 내부에서 무슨 계산이 많이있다. 콘솔에 얼마나 많은 시간이 걸릴지 알려주는 진행 메시지를 인쇄하고 싶습니다.

기본 루프는이 같은 줄에 백분율 메시지를 출력

n = 10000 
for i in range(n): 
    do_stuff_method() 
    if(i%100 == 0): 
     print (float(i)/n)*100, 

이지만, 문제는 인쇄 다음 일은이 같은 화면에 인쇄되어 있습니다. 99 개의 prinouts가 있기 때문에 콘솔은 꽤 넓어지고 많은 스크롤링이 이루어집니다.

콘솔에서 현재 수행 한 % 작업을 인쇄하고 한 줄의 finsih에 대한 예상 시간을 이전에 인쇄 된 것으로 바꿔서 많은 스크롤 작업을 수행 할 필요가 없습니다. .

이 작업을 수행 할 수 있습니까?

print "\r{0}".format((float(i)/n)*100), 

또는이 대신 인쇄처럼 시도 할 수 있습니다 : 단순히 인쇄 라인을 변경하여 당신이 그것을 할 수

건배, 귀하의 경우에는 데비

+0

또한 파이썬이 이것을 수행하기위한 패키지가 존재합니다 ... 진행률 표시 줄. pypi에서 확인하십시오 : http://pypi.python.org/pypi/progressbar/2.2 – jmetz

답변

7

가되게합니다

sys.stdout.write("\r{0}".format((float(i)/n)*100)) 
sys.stdout.flush() 
+0

방금 ​​테스트했습니다. 새 행에 각 값을 인쇄합니다. –

+0

끝에 쉼표를 넣었습니까 – iblazevic

+0

답에 넣은 다른 해결책을 시도해 볼 수 있습니다. 둘 다 나를 위해 일합니다 – iblazevic