2009-07-14 22 views
8

Pythonサブプロセスモジュールを使用して一連のコマンドを実行しようとしていますが、実行する前にシェル変数をエクスポートする必要があります。もちろん、シェルは永続的ではないようですので、後でコマンドを実行するとシェル変数が失われます。Python:サブプロセス内の永続シェル変数

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

答えて

13

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

+0

完璧、ありがとうございます。 – PeterBelm

+0

@PeterBelm、よろしいですか? –

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) 
関連する問題