このサイトで、 PythonからPerlスクリプトを呼び出す方法を示す質問を見つけました。私は現在、これを実現するために次のコード行を使用しています。
pipe = subprocess.Popen(["perl", "./Perl_Script.pl", param], stdout=subprocess.PIPE)
result = pipe.stdout.read()
これは完全に機能しますが、唯一の問題は、Perlスクリプトの実行に数分かかることです。Perlスクリプトの最後で、単純なprintステートメントを使用して、Pythonに戻す必要のある値を出力します。これは、Pythonの結果変数に設定されます。
数秒待って最後に長いリストを返す代わりに、Pythonに継続的に返すことができる数秒ごとにPerlスクリプトにさらに多くのprintステートメントを含めることができる方法はありますか?
最終的に、私が行っているのは、Perlスクリプトを使用してデータポイントを取得し、それをPythonに返送してアイダイアグラムをプロットすることです。Perlスクリプトの実行が終了したときにアイダイアグラムをプロットするのに数分待つのではなく、データのセグメントをPythonに継続的に返し、プロットを数秒ごとに更新できるようにします。