Python 스크립트에서 텍스트 파일 ( python script.py > log
) 로 stdout을 쓰려고하면 명령이 시작될 때 텍스트 파일이 작성되지만 실제 내용은 Python 스크립트가 완료 될 때까지 작성되지 않습니다. 예를 들면 다음과 같습니다.
script.py :
import time
for i in range(10):
print('bla')
time.sleep(5)
로 호출하면 5 초마다 stdout으로 인쇄 python script.py
되지만 호출 python script.py > log
하면 스크립트가 완료 될 때까지 로그 파일의 크기가 0으로 유지됩니다. 스크립트의 진행 상황을 따를 수 있도록 로그 파일에 직접 쓸 수 tail
있습니까 (예 :) ?
편집 그것은 python -u script.py
트릭 을 수행하는 것으로 나타났습니다 . 나는 stdout의 버퍼링에 대해 몰랐습니다.