Ich versuche, Linien aus einer Leitung zu lesen und zu verarbeiten, aber ich mache etwas albern und ich kann nicht herausfinden, was. Der Produzent wird sich halten Linien auf unbestimmte Zeit, wie diese produziert:Python - einfaches Lesen von Linien aus einem Rohr
producer.py
import time
while True:
print 'Data'
time.sleep(1)
Der Verbraucher muss nur regelmäßig auf Linien überprüfen:
consumer.py
import sys, time
while True:
line = sys.stdin.readline()
if line:
print 'Got data:', line
else:
time.sleep(1)
Wenn ich dies in der Windows-Shell als python producer.py | python consumer.py
ausführen, schläft es einfach für immer (scheint nie Daten zu bekommen?) Es scheint, dass das Problem vielleicht ist, dass der Prod ucer wird nie beendet, denn wenn ich eine endliche Menge an Daten sende, funktioniert es gut.
Wie kann ich die Daten erhalten und für den Verbraucher angezeigt werden? In der realen Anwendung ist der Produzent ein C++ - Programm, über das ich keine Kontrolle habe.
Haben Sie den letzten Satz der Frage gelesen? – jwg