터미널 출력을 텍스트 파일에 지속적으로 쓰기

터미널 출력을 텍스트 파일에 지속적으로 쓰기

터미널에서 작은 cli Python 애플리케이션을 실행 중입니다. 무한히 반복되어 터미널에 텍스트를 출력합니다. 텍스트를 파일로 출력하고 싶습니다. 다음 명령을 사용하여 이 작업을 수행할 수 있지만 python [my cli app] >> log.txt파일을 닫고 효과적으로 저장하려면 루프를 중단해야 합니다. 루프가 백그라운드에서 실행되는 동안 텍스트 파일에서 최신 콘텐츠를 읽을 수 있는 방법이 있습니까?

그래서 기본적으로:

~ $  [INFINITE LOOP] >> log.txt

그런 다음 영원히 실행되는 동안 에 액세스하려고 합니다 log.txt. 현재는 Ctrl+stop 명령을 사용할 때만 터미널 출력을 파일에 저장합니다 C.

이것이 설명되기를 바랍니다.

답변1

시뮬레이션.py:

(초당 10라인 출력)

#!/usr/bin/env python
import time

i=0
while True:
    print("{} what up {}".format(i,i%10))
    if i%10==9:
        time.sleep(1)
    i+=1

터미널에서:

$ stdbuf -oL python simulation.py >> log.txt

또 다른:

$ tail -f log.txt #10 new lines every second

답변2

PSkocik의 답변 처리 :

바꾸다

$ stdbuf -oL python simulation.py >> log.txt

하다

$ stdbuf -oL python simulation.py | tee log.txt

이를 통해 동일한 화면에서 프로그램의 원시 출력을 볼 수 있습니다.

관련 정보