擅长:python、mysql、java
<pre><code>#!/usr/bin/env python3
import io
def iterate_stream(stream, delimiter, max_read_size=1024):
""" Reads `delimiter` separated strings or bytes from `stream`. """
empty = '' if isinstance(delimiter, str) else b''
chunks = []
while 1:
d = stream.read(max_read_size)
if not d:
break
while d:
i = d.find(delimiter)
if i < 0:
chunks.append(d)
break
chunks.append(d[:i+1])
d = d[i+1:]
yield empty.join(chunks)
chunks = []
s = empty.join(chunks)
if s:
yield s
if __name__ == '__main__':
print(next(iterate_stream(io.StringIO('ABCZ123'), 'Z')))
print(next(iterate_stream(io.BytesIO(b'ABCZ123'), b'Z')))
</code></pre>