sys.stdout에 대한 Python 인터프리터의 출력 버퍼링 비활성화
Python의 인터프리터는 기본적으로 파일과 유사한 sys.stdout에 대한 출력 버퍼링을 활성화합니다. 표준을 수용하는 객체 출력.
버퍼링 방법 비활성화:
출력 버퍼링을 비활성화하려면 여러 가지 접근 방식이 있습니다.
python -u [script.py]
class Unbuffered(object): def __init__(self, stream): self.stream = stream def write(self, data): self.stream.write(data) self.stream.flush() def writelines(self, datas): self.stream.writelines(datas) self.stream.flush() def __getattr__(self, attr): return getattr(self.stream, attr) import sys sys.stdout = Unbuffered(sys.stdout)
이 변수를 비어 있지 않은 값으로 설정하면 버퍼링이 비활성화됩니다.
export PYTHONUNBUFFERED=1
이 방법에는 새 파일을 여는 방법이 포함됩니다. 버퍼링 없는 설명자:
import os sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)
추가로 질문에서 언급했듯이 전역 플래그는 실행 중에 프로그래밍 방식으로 설정할 수 있습니다. 그러나 출력 버퍼링을 비활성화하는 명시적인 전역 플래그는 없는 것 같습니다.
위 내용은 Python에서 sys.stdout에 대한 출력 버퍼링을 어떻게 비활성화할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!