저는 Ubuntu에서 Python3.5를 사용하고 있습니다. 다음 스크립트 파일 out
을 만들고 "안녕하세요"점점 더 많은 라인을 채 웁니다 :Python : contextlib.redirect_stdout이 때때로 실시간으로 작동하지 않습니다.
import contextlib
with contextlib.redirect_stdout(open('out','w')):
while True:
print('Hello')
그러나 나는 time.sleep()
에 대한 호출을 추가하여 작은 수정을하는 경우, 파일 out
이 비어 유지 :
import contextlib
import time
with contextlib.redirect_stdout(open('out','w')):
while True:
print('Hello')
time.sleep(1)
루프를 유한 루프로 전환하여 코드를 추가로 변경하면 루프 끝에있는 덩어리로만 out
이 채워집니다.
누구든지 이것을 재현하고 설명 할 수 있습니까?
참고, 참조 https://stackoverflow.com/questions/27067713/why-text-io 그러나, 각 루프의 끝에서
stdout
을 세척하면 원하는 효과를 가져야한다 -must-be-buffered-in-python-3 – Bananach좋은 캐치, 미안 해요 내 대답을 제대로 테스트해야합니다. Python 3에 대한 적절한 해결 방법을 제공하도록 업데이트되었습니다. –