Python 3.でサブプロセス管理にサブプロセス モジュールを使用する方法x
はじめに:
Python プログラミングでは、システム コマンドの実行や他のコマンドの開始など、外部コマンドやプログラムと対話する必要がよくあります。アプリケーションを実行するか、他のスクリプトを呼び出します。サブプロセス管理とは、Python プログラムでのサブプロセスの作成、制御、通信の操作を指します。 Python は、サブプロセス管理を処理するための強力で柔軟なツールであるサブプロセス モジュールを提供します。この記事では、サブプロセス モジュールを使用してサブプロセスを作成、制御、および通信する方法を紹介します。
1. サブプロセスの作成
subprocess モジュールを使用してサブプロセスを作成するのは非常に簡単で、Popen クラスのコンストラクター メソッドを直接呼び出すことでサブプロセス オブジェクトを作成できます。以下は簡単なサンプル コードです:
import subprocess # 执行一个系统命令,输出结果到标准输出 subprocess.Popen(["ls", "-l"])
この例では、Popen クラスのコンストラクター メソッドを使用してサブプロセス オブジェクトを作成します。渡されるパラメーターはリストであり、リストの最初の要素は次のとおりです。実行されるコマンドと後続の要素はコマンドのパラメータです。上記のコードは、システム コマンド ls -l
を実行し、結果を標準出力に出力します。
上記の方法に加えて、サブプロセス オブジェクトの作成時にパラメータ shell=True
を指定してシェル コマンドを実行することもできます。サンプル コードは次のとおりです。
import subprocess # 执行一个 Shell 命令 subprocess.Popen("ls -l", shell=True)
上記のコードでは、シェル コマンド "ls -l"
をパラメーターとして Popen クラスのコンストラクターに渡し、パラメーターを渡します。 shell=True
シェル コマンドを実行します。
2. サブプロセスの制御
サブプロセスが正常に作成された後、サブプロセス オブジェクトのさまざまなメソッドを使用して、サブプロセスの動作を制御できます。一般的に使用されるメソッドの一部を以下に示します。
次は、出力結果を取得し、子プロセスの終了時に出力するサンプル コードです。
import subprocess # 执行一个系统命令,获取输出结果 p = subprocess.Popen(["ls", "-l"], stdout=subprocess.PIPE) output, error = p.communicate() print(output.decode("utf-8"))
上記のコードでは、communicate() を使用します。
メソッド 子プロセスと対話し、子プロセスの出力結果を取得し、それを変数 output
に割り当てます。次に、decode("utf-8")
メソッドを使用して、バイナリ文字列を UTF-8 でエンコードされた文字列に変換し、出力を出力します。
3. サブプロセスの通信communicate()
メソッドを使用すると、サブプロセスと簡単に通信できます。サブプロセスからデータを受け取り、結果を出力します。以下はサンプル コードです。
import subprocess # 执行一个命令并接收子进程的输出 p = subprocess.Popen(["ls", "-l"], stdout=subprocess.PIPE) output, error = p.communicate() print(output.decode("utf-8")) # 向子进程发送数据并接收输出结果 p = subprocess.Popen(["grep", "example"], stdout=subprocess.PIPE, stdin=subprocess.PIPE) input_data = "This is an example" output, error = p.communicate(input=input_data.encode("utf-8")) print(output.decode("utf-8"))
上記のコードでは、まず子プロセス オブジェクト p
を作成し、コマンド ls -l
を実行して結果を出力します。 出力
に。次に、子プロセス オブジェクト p
を再度作成し、コマンド grep example
を実行して、子プロセスに input_data
を送信します。最後に、結果を出力します。
概要:
サブプロセス モジュールを使用すると、サブプロセスを簡単に作成、制御し、サブプロセスと通信することができます。実際のプログラミングプロセスでは、特定のニーズに応じてこれらの関数を柔軟に使用することで、より複雑なサブプロセス管理操作を実現できます。この記事が、Python でサブプロセス管理にサブプロセス モジュールを使用する際のお役に立てば幸いです。
以上がPython 3.x でサブプロセス管理にサブプロセス モジュールを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。