\

Pythonのsubprocessモジュールは、新しいプロセスを生成し、その入出力/エラーパイプに接続し、戻りコードを取得することができます。このモジュールは、os.systemos.spawn*などの古いモジュールや関数を置き換えることを目指しています。

subprocessモジュールを使用する推奨されるアプローチは、run()関数を使用することです。より高度なユースケースの場合、基礎となるPopenインターフェースを直接使用することができます。

subprocess.run(args, *, stdin=None, input=None, stdout=None, stderr=None, capture_output=False, shell=False, cwd=None, timeout=None, check=False, encoding=None, errors=None, text=None, env=None, universal_newlines=None, **other_popen_kwargs)

この関数は、argsで記述されたコマンドを実行し、コマンドが完了するのを待ってからCompletedProcessインスタンスを返します。

env引数がNoneでない場合、それは新しいプロセスの環境変数を定義するマッピングでなければなりません。これらは、現在のプロセスの環境を継承するデフォルトの動作の代わりに使用されます。

import subprocess, os
my_env = os.environ.copy()
my_env["PATH"] = "/usr/sbin:/sbin:" + my_env["PATH"]
subprocess.Popen(my_command, env=my_env)

このコードスニペットは、現在の環境をコピーし、PATH環境変数を変更し、その変更された環境で新しいプロセスを開始します。

以上がPythonのsubprocessモジュールと環境変数の管理についての基本的な情報です。この情報がPythonとsubprocessモジュールの理解に役立つことを願っています。

投稿者 admin

コメントを残す

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