Seite 1 von 1

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

Verfasst: Freitag 6. Juni 2008, 12:51
von acidk
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

Verfasst: Freitag 6. Juni 2008, 13:00
von BlackJack
`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.