[Python-de] os.system Fehler auswerten

Philipp Kraus philipp.kraus at flashpixx.de
Fr Nov 4 15:10:55 CET 2011


On 2011-11-04 14:35:38 +0100, Peter Otten said:

> 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

Vielen Dank, ich werde mich damit mal befassen, aber es klingt viel 
versprechend.
Mit Deinem Beispielcode habe ich nur das Problem, Du machst ein open auf
/dev/null wie sieht das aus, wenn das Pythonscript unter Windows läuft, da
existiert ja formal kein /dev/null?

Danke

Phil



Mehr Informationen über die Mailingliste python-de