Teilprozess.Popen (), IO-Umleitung

Versuchen umzuleiten Teilprozess' Ausgabe in eine Datei.

server.py:

while 1:
    print "Count " + str(count)
    sys.stdout.flush()
    count = count + 1
    time.sleep(1)

Laucher:

cmd = './server.py >temp.txt'
args = shlex.split(cmd)
server = subprocess.Popen( args )

Die Ausgabe auf dem Bildschirm erscheinen, temp.txt bleibt leer.
Was mache ich falsch?

Als hintergrund versuche ich zu erfassen, die Ausgabe eines Programms, das schon geschrieben hat.

Kann ich nicht verwenden:

server = subprocess.Popen(
                [exe_name],
                stdin=subprocess.PIPE, stdout=subprocess.PIPE)

als das Programm möglicherweise nicht bündig.
Stattdessen ging ich zum umleiten der Ausgabe über ein fifo. Dies funktioniert gut wenn ich manuell starten server.py aber offensichtlich nicht, wenn ich Popen() Ursache Umleitung funktioniert nicht.
ps -aux zeigt, dass server.py ins Leben gerufen wurde, richtig.

InformationsquelleAutor Pete Roberts | 2012-01-17
Schreibe einen Kommentar