端末出力をテキストファイルに継続的に書き込む

端末出力をテキストファイルに継続的に書き込む

端末で小さなcli Pythonアプリケーションを実行しています。無限に繰り返して端末にテキストを出力します。テキストをファイルに出力したいです。次のコマンドを使用してこれを実行できますが、python [my cli app] >> log.txtファイルを閉じて効果的に保存するには、ループを中断する必要があります。ループがバックグラウンドで実行されている間にテキストファイルから最新のコンテンツを読み取る方法はありますか?

だから基本的に:

~ $  [INFINITE LOOP] >> log.txt

その後、永遠に実行中にアクセスしようとしますlog.txt。現在は、Ctrl+ stopコマンドを使用している場合にのみ端末出力をファイルに保存しますC

これが説明されることを願っています。

ベストアンサー1

シミュレーション.py:

(1秒あたり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

おすすめ記事