[Python-de] Zeilengepuffertes r/w
Peter Otten
__peter__ at web.de
Di Aug 30 16:00:20 CEST 2011
Ole Streicher wrote:
> TOFU repariert.
>
> http://de.wikipedia.org/wiki/TOFU
>
> Jens Diemer <python_gmane at jensdiemer.de> writes:
>> Am 30.08.2011 13:53, schrieb Ole Streicher:
>>> wie bekomme ich eine zeilengepufferte Kommunikation zwischen zwei
>>> Scripten hin? Ich habe folgende zwei Mini-Programme:
>>>
>>> Sender:
>>> ----------------------8<-----------------
>>> import time
>>> l = open('myfifo',mode='w',buffering=1)
>>> [...]
>>> ----------------------8<-----------------
>>>
>>> Empfänger:
>>> ----------------------8<-----------------
>>> l = open('myfifo', buffering=1)
>>> [...]
>>> ----------------------8<-----------------
>>
>> Was ist mit l.flush() ?
>
> Es ist nicht die Sender-Seite, die das Problem macht, sondern der
> Empfänger. Ersetzt man den Empfänger durch "cat myfifo", kommen die
> Zeilen sofort.
Versuche
for line in iter(l.readline, ""): ...
statt
for line in l: ...
Letzteres erreicht seine Effizienz mittels eines internen Puffers...
Mehr Informationen über die Mailingliste python-de