Subprocess will nicht so wie ich es will :)
Verfasst: Samstag 23. August 2008, 13:30
hallo!
ich habe angefangen mich in python einzulesen und möchte nun ein wrapper für mencoder schreiben, was soweit auch gut geklappt hat. nun möchte ich jedoch auch den output von mencoder einschränken, d.h. ich möchte den output abfangen, parsen und neu ausgeben. mencoder gibt _ständig_ neuen output aus und gerade das ist mein problem.
hier ein knappes beispiel:
dies wirft mir zwar jede sekunde eine zeile raus, das problem ist hier nur, dass es keine "aktuelle" zeile ist, sondern schon etwas älter (in der einen sekunde hat mencoder vermutlich 1000 zeilen rausgeworfen und ich fange die erste ab).
ich will aber, dass er mir die aktuellste zeile rauswirft. wie mache ich das? ich hatte eigentlich gedacht, ich könnte mit lines = readlines() alle zeilen abfangen (und den "speicher" löschen?) und dann mit lines[-1] die letzte zeile rausfischen, aber das klappt leider nicht. ich erhalte kein output
...
ich habe angefangen mich in python einzulesen und möchte nun ein wrapper für mencoder schreiben, was soweit auch gut geklappt hat. nun möchte ich jedoch auch den output von mencoder einschränken, d.h. ich möchte den output abfangen, parsen und neu ausgeben. mencoder gibt _ständig_ neuen output aus und gerade das ist mein problem.
hier ein knappes beispiel:
Code: Alles auswählen
import subprocess
import time
proc = subprocess.Popen("mencoder ...", stdout = subprocess.PIPE)
while 1:
time(1)
print proc.stdout.readline()
ich will aber, dass er mir die aktuellste zeile rauswirft. wie mache ich das? ich hatte eigentlich gedacht, ich könnte mit lines = readlines() alle zeilen abfangen (und den "speicher" löschen?) und dann mit lines[-1] die letzte zeile rausfischen, aber das klappt leider nicht. ich erhalte kein output
