Dostosuj iterator, aby zachowywał się jak obiekt podobny do pliku w Pythonie
Mam generator generujący listę ciągów. Czy w Pythonie istnieje narzędzie / adapter, które może sprawić, że będzie wyglądać jak plik?
Na przykład,
>>> def str_fn():
... for c in 'a', 'b', 'c':
... yield c * 3
...
>>> for s in str_fn():
... print s
...
aaa
bbb
ccc
>>> stream = some_magic_adaptor(str_fn())
>>> while True:
... data = stream.read(4)
... if not data:
... break
... print data
aaab
bbcc
c
Ponieważ dane mogą być duże i muszą być przesyłane strumieniowo (każdy fragment ma kilka kilobajtów, cały strumień ma dziesiątki megabajtów), nie chcę chętnie oceniać całego generatora przed przekazaniem go do adaptera strumienia.