Python: Persistente Shell-Variablen im Subprozess

8

Ich versuche, eine Reihe von Befehlen mit Pythons Subprozess-Modul auszuführen, aber ich muss Shell-Variablen mit dem Export vor dem Ausführen festlegen. Natürlich scheint die Shell nicht persistent zu sein, also wenn ich später einen Befehl ausführe, sind diese Shell-Variablen verloren.

Gibt es einen Weg, dies zu tun? Ich könnte einen / bin / sh-Prozess erstellen, aber wie würde ich die Exit-Codes der Befehle erhalten, die darunter laufen?

    
PeterBelm 14.07.2009, 15:19
quelle

2 Antworten

13

subprocess.Popen verwendet ein optionales benanntes Argument env , das ein Wörterbuch ist, das als Umgebung des Unterprozesses verwendet wird (was Sie als "Shell-Variablen" bezeichnen). Bereiten Sie ein Diktat so vor, wie Sie es benötigen (Sie können mit einer Kopie von os.environ beginnen und diese nach Bedarf ändern) und an alle von Ihnen ausgeführten subprocess.Popen -Aufrufe übergeben.

    
Alex Martelli 14.07.2009, 15:22
quelle
5

Alex hat absolut Recht. Um ein Beispiel zu geben

%Vor%     
Siva 27.08.2009 09:22
quelle