subprocess.Popen(…).stderr.readline blockiert
Verfasst: Dienstag 17. Juli 2012, 20:05
Das funktioniert:
Falls ich nun aber `#line = fd.readline()` anstatt `fd.read(1)` blockt `fd.readline()` die Ausgabe bis zum Ende, wo ist der Unterschied?
Code: Alles auswählen
def _yield_lines(self, fd):
line = list()
while True:
char = fd.read(1)
#line = fd.readline()
if not char:
break
else:
line.append(char)
if char == '\n':
yield ''.join(line)
line = list()
p = Popen(args, stdout=PIPE, stderr=PIPE, universal_newlines=True)
_yield_lines(p.stderr)