循环缓冲区的简单实现。
pycircularbuffer的Python项目详细描述
- 许可证:麻省理工学院
摘要
简单的circular buffer 用python扩展编写。
CircularBuffer将为空的两个部分分配请求的大小+2字节 终止字符串。
如果使用缓冲区,可以临时分配另一半分配的字节 协议,我主要用它们来做正则表达式。
安装
只需从下载的源代码编译 可能是需要的。
使用
fromcircularbufferimportCircularBufferbuf=CircularBuffer(1024)buf.write(b'some text')whilelen(buf)>0:buf.read(1)fromreimportmatchbuf.write(b'hallo')# python2withbuf:match_found=match(br'^ha',buf)# python3match_found=match(br'^ha',buf)# use `result` immediately because regex didn't make memory copy of the# internal buffer, or run another `match()` on a memory copy, for example:match_found_str=buf.read(len(match_found.group(0)))independent_match_found=match(br'^ha',match_found_str)
警告
不要在python 3中这样做:buf中的a,而在buf中的b。
API
常规方法:
- 清除()
- read()
- resize()
- write()
- write_available()
- 使u成为连续的()
字符串方法:
- count()
- startswith()
- find()
- index()
顺序方法:
- _包含
- _获取项目
- _长度
- _设置项
魔法方法:
_重复
_ str_uuu()
注意:虽然字符串表示使事情变得更容易,但它总是创建 记忆拷贝。
_输入uuu()
缓冲协议:
注意:对于python版本<;3,您需要使用context manager,和 语句,以便在释放缓冲区时通知循环缓冲区。
使用缓冲区协议将引发 循环buffer.read()。