\

Pythonのsubprocessモジュールは新しいプロセスの開始、入力/出力/エラーパイプの接続、リターンコードの取得を可能とします。このモジュールは、os.systemos.spawn*などの古いモジュールや関数を置き換えることを目的としています。

subprocess.callの使用

subprocess.callを使用すると、コマンドを実行することができます。以下にその使用例を示します。

import subprocess
cmd = "sleep 30"
proc = subprocess.call(cmd, shell=True)

このコードは、sleep 30というコマンドを実行します。このコマンドは、30秒間プログラムの実行を停止します。subprocess.callは、コマンドの終了を待つため、この行が終了するまでプログラムはブロックされます。

subprocess.Popenの使用

subprocess.Popenを使用すると、新しいプロセスを起動し、そのプロセスの制御を手に入れることができます。以下にその使用例を示します。

from subprocess import Popen
cmd = "sleep 30"
proc = Popen(cmd.strip().split(" "))

このコードは、sleep 30というコマンドを実行します。しかし、Popenはコマンドの終了を待たずに新しいプロセスを起動するため、この行が終了した後もプログラムは実行を続けます。

終了コードの取得

subprocess.run関数を使用すると、コマンドの終了コードを取得することができます。終了コードは、コマンドが成功したかどうかを示す値で、0は成功を、非0はエラーを示します。

以上がPythonのsubprocessモジュールの基本的な使用方法です。これらの機能を利用することで、Pythonから他のプログラムを効率的に制御することが可能となります。.

投稿者 admin

コメントを残す

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