2012-08-15 3 views
2

다음 예제 Python 프로그램은 업데이트 진행률 막대를 인쇄합니다. 다음 메이크 파일 (우분투 배쉬에서) 확인 GNU를 통해 실행할 때GNU make buffer의 파이썬 출력을 멈추는 방법?

progress.py : 그러나

import sys 
import time 

for i in range(100): 
    sys.stdout.write("\r%3d%%" % (i + 1)) 
    sys.stdout.flush() 
    time.sleep(.02) 
sys.stdout.write("\n") 

는, 출력은 개행 문자가 발견 될 때까지 버퍼 것으로 보인다 때문에 진행 업데이트가되지 않습니다 명백한. 버퍼없는 출력은 확실하게 파이썬에 지정됩니다.

make를 사용할 때 partial-line 출력을 즉시 볼 수있는 방법이 있습니까?

+0

방금 ​​테스트 한 예제는 완벽하게 작동합니다. 우분투 12.04를 사용 중이며 gnome-terminal에서 예제를 테스트했습니다. – user1202136

+0

@ user1202136도 12.04에 있는데 프로그램이 완료 될 때까지 출력이 표시되지 않습니다. 나는 GNU Bash 4.2.24와 GNU Make 3.81을 사용하고있다. 그것이 모두 당신을 위해 동일하다면 그 차이점이 무엇인지 모릅니다. –

+0

나를 위해 잘 작동합니다. Linux Mint 13 (효과적으로 Ubuntu 12.04)에서 실행되는 Bash 및 Make의 동일한 버전. –

답변

2

결국 makecolormake의 별명을 지정 했으므로 /etc/bash.bashrc에이를 추적했습니다.

> type make 
make is aliased to `colormake' 

출력이 colormake 인 것으로 보입니다. 아마도 색칠하기 전에 전체 선을 파싱해야합니다.

은 추가로 개선되었다

unalias make 

~/.bashrc한다.

> type make 
make is /usr/bin/make