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()

最新文章

  1. linux查看本机IP、gateway、DNS
  2. delphi 动态更改屏幕分辨率(转)
  3. BZOJ1584 [Usaco2009 Mar]Cleaning Up 打扫卫生
  4. Svn win7系统下状态图标不显示-转载
  5. Sql Server 数据库之间如何进行跨网远程连接访问
  6. XZ压缩最新压缩率之王
  7. Linux下用户及用户组的管理
  8. Java的内存管理与内存泄露
  9. ASP.NET-FineUI开发实践-7
  10. scrollView顶部空白
  11. Cookie mapping技术
  12. Java入门之JDK的安装和环境变量的配置
  13. shell函数-3
  14. JAVAEE 第七周
  15. 自学Python6.4-内置模块(2)
  16. dapper 简单多表查询
  17. 在ROS中使用QT界面
  18. python3之Splash
  19. Transaction And Lock--快照事务隔离级别
  20. Visualforce入门第二篇_2017.3.1

热门文章

  1. android studio友盟分享demo运行报错Gradle's dependency cache may be corrupt解决方法
  2. Java查看项目目录以及导入项目
  3. B-论文一些好的句子
  4. 学以致用十一-----centos7.2+python3+YouCompleteMe走过的坑
  5. 关于css中设置属性的常识
  6. 归并排序 JavaScript 实现
  7. 1.2.2实现Runnable接口
  8. jvm的内存分配
  9. centos设置服务开机自动启动的方法
  10. XML与DTD