Ausgabe von subprocess welches flushed

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.
Antworten
anogayales
User
Beiträge: 456
Registriert: Mittwoch 15. April 2009, 14:11

Hi Community,

ich versuche, an eine Ausgabe eines Programms zu kommen, welches Stdout regelmäßig flushed. Irgendwie komm ich nicht an die Daten.

output.py

Code: Alles auswählen

import sys
import time

for x in range(200):
    sys.stdout.write("\r"+str(x))
    time.sleep(0.125)
    sys.stdout.flush()
read.py

Code: Alles auswählen

import subprocess

command_string = "C:\Python26\python.exe output.py"
process = subprocess.Popen(command_string, stdout=subprocess.PIPE)

while True:
    buff = process.stdout.readline()
    print process, buff

    if buff == '' and process.poll() != None:
        print "breaking"
        break

process.wait()
print "finished"
Er scheint bei mir bei process.stdout.readline() hängen zu bleiben. Gibts da irgendeinen Weg wie ich an die Ausgabe rankomme?

Grüße,
anogayales
deets

Dann benutz doch read, nicht readlin. das warte auf ein line-feed, was du nicht hast.
anogayales
User
Beiträge: 456
Registriert: Mittwoch 15. April 2009, 14:11

deets hat geschrieben:Dann benutz doch read, nicht readlin. das warte auf ein line-feed, was du nicht hast.
Problem bleibt leider immer noch.

Platform: Win7 64, Python 2.6.6 32

Edit: Keiner eine Idee oder einen Anreiz? Bei einer ähnlichen Frage ist das select modul aufgetaucht. Scheint wohl unter Linux zu funktionieren unter Windows nicht.
Antworten