サブプロセスモジュールを次のように使用したいと思います。
- 実行に時間がかかる可能性のある新しいプロセスを作成します。
- キャプチャ
stdout
(またはstderr
、あるいは両方、一緒にまたは別々に) - サブプロセスからのデータを受信時に処理します。おそらく、受信したすべての行でイベントを発生させるか(wxPythonなど)、または単に今のところそれらを出力します。
Popenを使用してプロセスを作成しましたが、communicate()を使用すると、プロセスが終了すると、データが一度に届きます。
(を使用して)ブロッキングを行う別のスレッドを作成するとreadline()
、プロセスが終了するまで、このメソッドでも行を取得できません。(bufsizeとして何を設定しても)myprocess.stdout
stdout = subprocess.PIPE
恐ろしくなく、複数のプラットフォームでうまく機能するこれに対処する方法はありますか?