cStringIO 实现指定大小的字符串缓存
2024-09-21 07:55:05
StringIO经常被用来作为字符串的缓存,以下实现无论写入多少字符串,总能返回一个指定大小的缓存
from cStringIO import StringIO class CustomStringIO(): def __init__(self, max_buffer = 4096): self.max_buffer = max_buffer #用来设置stringIO最大存储字节数
self.buffer = StringIO() #cStringIO.StringIO 不能用于继承,一旦赋值初始化了,就不能改变,但其效率比StringIO.StringIO高,cStringIO没有len和pos属性。(还有,cStringIO不支持Unicode编码) def truncate_to_maxsize(self):
'''自定义裁剪函数,当StringIO存储字节数超过定义的最大字节数时,裁剪最后写入的最大长度
self.buffer.seek(-self.max_buffer, 2)
_last = self.buffer.readlines()
self.buffer.truncate(0)
self.buffer.writelines(_last) def write(self,string):
self.buffer.write(string)
self.truncate_to_maxsize() def getvalue(self):
return self.buffer.getvalue() if __name__ == '__main__':
mystringio=CustomStringIO(10)
mystringio.write('lyhlyh')
mystringio.write('ldfdffdfdsfdsfsdfs')
mystringio.write('fdfdfdfdf')
print mystringio.getvalue()
最新文章
- linux查看本机IP、gateway、DNS
- delphi 动态更改屏幕分辨率(转)
- BZOJ1584 [Usaco2009 Mar]Cleaning Up 打扫卫生
- Svn win7系统下状态图标不显示-转载
- Sql Server 数据库之间如何进行跨网远程连接访问
- XZ压缩最新压缩率之王
- Linux下用户及用户组的管理
- Java的内存管理与内存泄露
- ASP.NET-FineUI开发实践-7
- scrollView顶部空白
- Cookie mapping技术
- Java入门之JDK的安装和环境变量的配置
- shell函数-3
- JAVAEE 第七周
- 自学Python6.4-内置模块(2)
- dapper 简单多表查询
- 在ROS中使用QT界面
- python3之Splash
- Transaction And Lock--快照事务隔离级别
- Visualforce入门第二篇_2017.3.1