\

Pythonのsubprocessモジュールを使用して、子プロセスのstdinに書き込む方法について説明します。この方法は、Pythonスクリプトから別のプログラムを制御する際に役立ちます。

まず、subprocess.Popenを使用して新しいプロセスを開始します。この関数は、新しいプロセスを開始し、そのプロセスのstdinstdout、およびstderrへのパイプを提供します。

from subprocess import Popen, PIPE, STDOUT

p = Popen(['myapp'], stdout=PIPE, stdin=PIPE, stderr=PIPE)

次に、Popen.communicateメソッドを使用して、stdinにデータを書き込みます。

stdout_data = p.communicate(input='data_to_write')[0]

このメソッドは、データをstdinに書き込み、stdoutstderrからデータを読み取ります。

注意点として、communicateメソッドはプロセスが終了するまでブロックします。したがって、プロセスが永久にブロックする可能性がある場合や、複数のプロセスと同時に対話する必要がある場合は、このメソッドを使用するのは適していないかもしれません。

以上がPythonのsubprocessモジュールを使用して、子プロセスのstdinに書き込む基本的な方法です。これにより、Pythonスクリプトから他のプログラムをより効果的に制御できます。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です