>  기사  >  백엔드 개발  >  Python에서 즉시 터미널 출력을 강제하는 방법은 무엇입니까?

Python에서 즉시 터미널 출력을 강제하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-13 12:44:02135검색

How to Force Immediate Terminal Output in Python?

Python을 사용한 영구 터미널 출력

Python에서는 인쇄 출력이 없으면 인쇄 출력이 터미널에 즉시 나타나지 않는 문제가 있습니다. 줄 바꿈이 있습니다. 이는 성능 향상을 위해 출력을 일시적으로 저장하는 출력 버퍼링으로 인해 발생합니다.

어떻게 되나요?

기본적으로 터미널은 출력을 라인으로 나눕니다. 줄 바꿈 문자 없이 줄이 끝나면 출력은 완료될 때까지 버퍼에 유지됩니다. 결과적으로 print 문 뒤에 줄바꿈이 없으면 루프나 프로그램이 종료될 때까지 출력이 표시되지 않습니다.

문제 해결

For 단일 인쇄:

Python 3에서 인쇄 함수는 플러시 인수를 허용합니다. True로 설정하면 출력이 즉시 표시됩니다.

import time

for _ in range(10):
    print('.', end=' ', flush=True)
    time.sleep(.2)  # or other time-consuming work

print가 명령문인 Python 2에서는 표준 출력 스트림(sys.stdout)의 플러시 메서드를 사용합니다.

import time

for _ in range(10):
    print '.',
    sys.stdout.flush()
    time.sleep(.2)  # or other time-consuming work

여러 인쇄의 경우:

인쇄할 때마다 플러시하는 대신 출력 라인 버퍼링을 모두 비활성화하여 여러 인쇄를 보다 효율적으로 처리할 수 있습니다. 다양한 솔루션을 사용할 수 있습니다.

  • print(file=sys.stderr)를 사용하여 버퍼링되지 않은 표준 오류로 출력을 리디렉션합니다.
  • 목록과 함께 sys.stdout.writelines를 사용하세요. 모든 인쇄 명령문을 한 번에 출력합니다.
  • 버퍼되지 않은 패키지를 설치하고 해당 Unbuffered 클래스를 활용하여 버퍼되지 않은 stdout 스트림을 생성합니다.

위 내용은 Python에서 즉시 터미널 출력을 강제하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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