os.system()... nur wie bekomme ich eine Rückgabe?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
acidk
User
Beiträge: 75
Registriert: Samstag 6. Januar 2007, 18:54
Wohnort: Braunschweig

os.system()... nur wie bekomme ich eine Rückgabe?

Beitragvon acidk » Freitag 6. Juni 2008, 12:51

Hi!

Ich rufe in einer for i Schleife ein in Python eingebundenes Programm via System call auf.

Nun möchte ich an die PID eines jeden Aufruf Prozesses zu kommen - mit os.getpid() bekomme ich leider immer die gleiche PID.

Nun versuche ich es direkt über die Shell via System Call.
Klappt auch - aber:

Wie um alles in der Welt kann ich mir die in der Shell ausgegebene Info nach python zurückgeben lassen? So bekomme ich beim folgenden Code für die Variable a (die eigentlich meine PID sein sollte) nur den Wert 0 ausgegeben.

Code: Alles auswählen

import os

def call():
   
   call  = "pidof python"
   a = os.system(call)
   return a

result = call()
print result , "result"

print "done"





flo@AKB-12:~/Desktop/ccd_astex$ python test.py
12763 9624 4901 #PIDs vom System Call
0 result

Danke
BlackJack

Beitragvon BlackJack » Freitag 6. Juni 2008, 13:00

`os.system()` gibt nur den Rückgabewert des gestarteten Programms zurück. Die Ausgabe kann man damit nicht erhalten.

Schau Dir mal das `subprocess`-Modul an.

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot]