8

Pythons subprocess モジュールを使用して一連のコマンドを実行しようとしていますが、実行する前に export でシェル変数を設定する必要があります。もちろん、シェルは永続的ではないように見えるので、後でコマンドを実行すると、これらのシェル変数は失われます。

これについて何か方法はありますか?/bin/sh プロセスを作成することはできますが、そのプロセスで実行されたコマンドの終了コードを取得するにはどうすればよいでしょうか?

4

2 に答える 2

13

subprocess.Popenサブプロセスの環境として使用する辞書であるオプションの名前付き引数envを取ります (「シェル変数」として説明しているもの)。必要に応じて dict を準備し (コピーから始めて、必要に応じて変更することもできます)、実行するすべての呼び出しos.environに渡します。subprocess.Popen

于 2009-07-14T15:22:45.227 に答える
5

アレックスは完全に正しいです。例を挙げると

current_env=environ.copy()
current_env["XXX"] = "SOMETHING" #If you want to change some env variable
subProcess.Popen("command_n_args", env=current_env)
于 2009-08-27T09:22:32.407 に答える