>  기사  >  백엔드 개발  >  줄 바꿈 없이 인쇄 출력이 터미널에 즉시 나타나지 않는 이유는 무엇입니까?

줄 바꿈 없이 인쇄 출력이 터미널에 즉시 나타나지 않는 이유는 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-11 19:33:03415검색

Why Doesn't Print Output Appear Immediately in the Terminal Without a Newline?

왜 줄 바꿈 없이 인쇄 출력이 터미널에 즉시 나타나지 않습니까?

Python의 기본 동작은 출력을 버퍼링하는 것입니다. 즉, 텍스트를 터미널로 보내기 전에 임시 공간에 텍스트를 저장합니다. 이는 필요한 시스템 호출 수를 줄여 성능을 향상시키기 위한 것입니다.

문제

문자 끝에 개행(n)이 포함되지 않은 경우 print 문이나 함수 호출 시 텍스트는 버퍼에 보관됩니다. 줄바꿈이 발생하거나 버퍼가 가득 찬 경우에만 텍스트가 플러시되어 터미널에 표시됩니다.

Python 2.x 및 3.x 차이점

Python 2.x에서는 print 문에 플러시 인수가 없습니다. 줄 바꿈을 추가하지 않고 버퍼를 플러시하려면 다음 접근 방식을 사용할 수 있습니다.

import sys

for i in range(10):
    print '.',
    sys.stdout.flush()

Python 3.x에서 인쇄 함수에는 플러시 키워드 인수가 포함됩니다.

for i in range(10):
    print('.', end=' ', flush=True)

< ;h3>라인 버퍼링 비활성화

개행에 관계없이 즉시 인쇄가 필요한 시나리오의 경우 존재 여부에 따라 라인 버퍼링을 완전히 비활성화할 수 있습니다. 이는 다음을 사용하여 달성할 수 있습니다:

  • sys.stdout.line_buffering = True for Python 2.x
  • print(flush=True) for Python 3.x

버퍼링을 비활성화하면 줄바꿈이나 명시적 사용 없이 모든 인쇄 호출이 터미널에 즉시 표시됩니다. 플러싱.

위 내용은 줄 바꿈 없이 인쇄 출력이 터미널에 즉시 나타나지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.