[Python-de] os.system Fehler auswerten

Peter Otten __peter__ at web.de
Fr Nov 4 14:35:38 CET 2011


Philipp Kraus wrote:

> Hallo,
> 
> ich nutze Scons (http://www.scons.org/) um verschiedene Targets
> umzusetzen, unter anderem rufe ich aus dem Sconsscript via os.system
> das Unixbekannte "configure, make, make install" auf. Falls nun das nun
> fehlschlägt, kann man das irgendwie dedektieren, also z.B. wenn das
> make irgendwelche includes nicht findet und abbricht, kann ich dann in
> meinem Sconsscript darauf reagieren?

Ich empfehle subprocess.call/Popen statt os.system. 

>>> subprocess.call(["ls", "not-there"], stderr=open("/dev/null", "w"))
2

Wenn der returncode nicht ausreicht, lässt sich auch die Ausgabe auf stdout 
oder stderr abfangen:

>>> p = subprocess.Popen(["ls", "not-there"], stderr=subprocess.PIPE)
>>> p.communicate()
(None, 'ls: Zugriff auf not-there nicht m\xc3\xb6glich: No such file or 
directory\n')
>>> p.returncode
2




Mehr Informationen über die Mailingliste python-de