実行中にスクリプトの出力を定期的に読み取るにはどうすればよいですか?
youtube-dl の場合、ダウンロード中の動画に関するダウンロード情報 (progress/speed/eta) を端末に送信します。
次のコードを使用すると、スクリプト出力 (Linux 上) の合計結果を一時ファイルにキャプチャできます。
tmpFile = io.open("/tmp/My_Temp.tmp", "w+")
f = io.popen("youtube-dl http://www.youtube.com/watch?v=UIqwUx_0gJI", 'r')
tmpFile:write(f:read("*all"))
スクリプトが完了するのを待って最後にすべてのデータを書き込むのではなく、youtube-dl が端末に送信した最新情報の「スナップショット」をキャプチャできるようにしたいと考えています。
私の全体的な目標は、Iup を使用して進行状況バーを設計するために、ダウンロード情報を取得することです。
ダウンロード情報を取得するためのよりインテリジェントな方法があれば、私も喜んでアドバイスをいたします。
とにかく、io.popen()、os.execute()、または他のツールをそのような方法で使用できる場合、リアルタイムのコンソール出力をキャプチャする方法を知りたいです。