ich möchte ein Shellprogramm starten, diesem einen String über die Standardeingabe übergeben und dessen Standardausgabe auslesen.
Da os.system() keinen Zugriff auf die Ausgabe des anderen Prozesses zu ermöglichen scheint, sondern nur den Return-Code zurückgibt, habe ich mich ein bisschen in der Dokumentation umgesehen und auf zu os.popen2() gekommen.
Sobald ich aber die Ausgabe des Prozesses lesen möchte, bleibt das Script stehen, auch wenn ich das ganze soweit wie möglich reduziere.
Code: Alles auswählen
print "s popen"
stdin, stdout = os.popen2(cmd)
print "e popen"
print "s write"
stdin.write(self.tostring(False))
print "e write"
print "s iter"
for line in stdout:
print line
print "e iter"
Was mache ich verkehrt?