zoukankan      html  css  js  c++  java
  • cStringIO 实现指定大小的字符串缓存

    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()
  • 相关阅读:
    lcn 分布式事务协调者集群原理
    springboot 监控 Actuator
    springboot 配置文件说明
    docker 安装jenkins
    docker 搭建maven 私服
    docker 安装 gitlab
    docker 安装软件
    docker 部署 java 项目
    mybatis 中between and用法
    vue-router history 模式 iis 配置
  • 原文地址:https://www.cnblogs.com/linyihai/p/7071484.html
Copyright © 2011-2022 走看看