鉴于该流为aaa BOUNDARY bbbb BOUNDARY ...
,我想要的是:
>>> read_until(stream, b' BOUNDARY ')
b'aaa'
>>> read_until(stream, b' BOUNDARY ')
b'bbbb'
边界小于100字节,流数据是无限的,每秒的兆字节速率很高。该解决方案在内存和时间方面需要高效,而不是天真地窥视和读取BufferedReader
。
我正在寻找一个简短的解决方案,可能利用标准库或广泛使用的纯Python包。有email
和cgi
库,它们可以从流中读取多部分的块,这看起来像我所需要的,但是我不明白如何提取此功能。
或者,最好是像BufferedReader
这样的带有可搜索缓冲区的东西。
最后的办法是手动实施,但是感觉就像发明了轮子。