포스트

파이썬에서 print 함수의 출력을 즉시 보이게 하는 방법

문제 상황: 출력 지연 현상

파이썬에서 print 함수를 사용하다보면, 때로는 출력이 즉시 이루어지지 않고 지연되는 경우가 있습니다. 특히 루프나 긴 연산 과정에서 중간 결과를 확인하고 싶을 때, 이러한 지연은 문제가 될 수 있습니다.

flush 파라미터를 사용한 해결 방법

print 함수에는 flush라는 파라미터가 있습니다. 이 파라미터를 True로 설정하면, print 함수는 버퍼(buffer)에 저장된 내용을 즉시 출력합니다. 버퍼란 임시로 데이터를 저장하는 공간을 의미합니다.

1
print("Hello, World!", flush=True)

sys.stdout.flush()를 사용한 다른 해결 방법

sys 모듈의 stdout.flush() 메서드를 사용하여 같은 결과를 얻을 수 있습니다. 이 메서드는 명시적으로 버퍼를 비워 즉시 출력하게 만듭니다.

1
2
3
4
import sys

print("Hello, World!")
sys.stdout.flush()

왜 버퍼링이 발생하는가?

파이썬은 성능 향상을 위해 출력을 버퍼에 저장합니다. 그러나 이러한 기능은 때로는 사용자에게 지연된 것처럼 보이게 할 수 있습니다. flush 파라미터나 stdout.flush() 메서드를 사용하면 이 문제를 해결할 수 있습니다.

주의 사항

flush=True를 자주 사용하면, 프로그램의 성능에 영향을 줄 수 있습니다. 필요한 경우에만 사용하는 것이 좋습니다.

결론

print 함수의 출력을 즉시 보이게 하려면 flush=True 파라미터를 사용하거나 sys.stdout.flush() 메서드를 사용할 수 있습니다. 이러한 방법을 통해 출력 지연 문제를 해결할 수 있습니다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.