출력 버퍼링를 해제하고 싶습니다
조회수 3163회
1 답변
-
1. 커맨드 라인에서 설정하는 방법
파이썬 스크립트를 실행할 때
python -u <file>
과 같이 실행
2. 환경변수로 설정하는 방법
환경 변수 PYTHONUNBUFFERED를 설정하면 버퍼링 되는 걸 막을 수 있습니다.
import os os.environ('PYTHONUNBUFFERED') = '1'
3. stdout 할 때 마다 flush 해주는 객체 생성
write 할 때 마다 flush 해주는 클래스를 만들어서 sys.stdout를 이 객체로 대체하는 방법입니다.
class Unbuffered(object): def __init__(self, stream): self.stream = stream def write(self, data): self.stream.write(data) self.stream.flush() def __getattr__(self, attr): return getattr(self.stream, attr) import sys sys.stdout = Unbuffered(sys.stdout) print 'Hello'
댓글 입력