[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