StringIO模块字符串的缓存

StringIO经常被用来作为字符串的缓存,应为StringIO有个好处,他的有些接口和文件操作是一致的,也就是说用同样的代码,可以同时当成文件操作或者StringIO操作。比如:

import string, os, sys
import StringIO

def writedata(fd, msg):
    fd.write(msg)
    
f = open(‘aaa.txt‘, ‘w‘)

writedata(f, "xxxxxxxxxxxx")
f.close()

s = StringIO.StringIO()
writedata(s, "xxxxxxxxxxxxxx")

因为文件对象和StringIO大部分的方法都是一样的,比如read, readline, readlines, write, writelines都是有的,这样,StringIO就可以非常方便的作为"内存文件对象"。

import string
import StringIO

s = StringIO.StringIO()
s.write("aaaa")
lines = [‘xxxxx‘, ‘bbbbbbb‘]
s.writelines(lines)

s.seek(0)
print s.read()

print s.getvalue()
s.write(" ttttttttt ")
s.seek(0)
print s.readlines()
print s.len

StringIO还有一个对应的c语言版的实现,它有更好的性能,但是稍有一点点的区别,cStringIO没有len和pos属性。(还有,cStringIO不支持Unicode编码)

时间: 2024-11-17 11:57:11

StringIO模块字符串的缓存的相关文章

StringIO 模块用于在内存缓冲区中读写数据

模块是用类编写的,只有一个StringIO类,所以它的可用方法都在类中.此类中的大部分函数都与对文件的操作方法类似. 例: #coding=gbk import StringIO s=StringIO.StringIO("python a ,bu hao xue") s.write("python 2 \r\n") s.write('okok hello 中国') s.seek(0) print s.read() #最后4个字节 s.seek(-4,2) print

加密&json&StringIO模块&BytesIO模块

一.加密 加密 md5 rsa hashlib (适用于python2) 案例一:import hashlib# m = hashlib.md5()# src = "123456"# m.update(src)# print(m.hexdigest()) m3 = hashlib.md5("123456".encode("utf-8"))src = bytes("ling", encoding="utf-8"

python的StringIO模块

StringIO经常被用来作字符串的缓存,因为StringIO的一些接口和文件操作是一致的,也就是说同样的代码,可以同时当成文件操作或者StringIO操作. 一.StringIO中的常用方法 1.read 用法: s.read([n]):参数n用于限定读取的长度,类型为int,默认为从当前位置读取对象s中所有的数据.读取结束后,位置被移动. 2.readline 用法: s.readline([length]):length用于限定读取的结束位置,类型为int,缺省为None,即从当前位置读取

Python的StringIO模块和cStringIO模块

1.StringIO模块 StringIO用于像文件一样对字符串缓冲区或者叫做内存文件进行读写. f = StringIO()      # ready for writing f = StringIO(buf)   # ready for reading f.close()           # explicitly release resources held flag = f.isatty()   # always false pos = f.tell()      # get curr

转载:python中的StringIO模块

注意:python3中应使用io.StringIO StringIO经常被用来作为字符串的缓存,应为StringIO有个好处,他的有些接口和文件操作是一致的,也就是说用同样的代码,可以同时当成文件操作或者StringIO操作. 一.例子 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 import StringIO s = StringIO.StringIO() s.write('www.baidu.com\r\n') s.wri

LAMP环境的搭建(模块)+ xcache缓存

LAMP环境的搭建(模块) LAMP简介: LAMP指的Linux(操作系统).ApacheHTTP 服务器,MySQL(有时也指MariaDB,数据库软件) 和PHP(有时也是指Perl或Python) 的第一个字母,一般用来建立web 服务器. Linux+Apache+Mysql/MariaDB+Perl/PHP/Python一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台.随着开源

高性能Web服务器Nginx的配置与部署研究(13)应用模块之Memcached模块+Proxy_Cache双层缓存模式

通过<高性能Web服务器Nginx的配置与部署研究——(11)应用模块之Memcached模块的两大应用场景>一文,我们知道Nginx从Memcached读取数据的方式,如果命中,那么效率是相当高的.那么: 1. 如果不命中呢? 我们可以到相应的数据服务器上读取数据,然后将它缓存到Nginx服务器上,然后再将该数据返回给客户端.这样,对于该资源,只有穿透 Memcached的第一次请求是需要到数据服务器读取的,之后在缓存过期时间之内的所有请求,都是读取Nginx本地的.不过Nginx的 pro

使用ngx_slowfs_cache模块构建本地缓存

Nginx的Web缓存服务主要由proxy_cache相关指令集和fastcgi_cache相关指令集构成,前者用于反向代理时,对后端内容源服务器进行缓存,后者主要用于对FastCGI的动态程序进行缓存.两者的功能基本上一样. 下午在翻看nginx所有addone模块的是,发现了ngx_slowfs_cache,它扩充了Nginx的缓存功能,通过 ngx_slowfs_cache 可以实现本地站点静态文件缓存(配合root指令使用).此功能为低速的存储设备创建快速缓存提供了可能.举个例子: 网站

Apache模块压缩和缓存设置

1.压缩功能的开启yum remove httpd //卸载原有的Apache文件cd /opt/LAMPtar xzvf httpd-2.4.2.tar.gz -C /opt //手工编译安装httpdtar xzvf apr-1.4.6.tar.gz -C /opt //支持Apache上层应用跨平台,提供底层接口库tar xzvf apr-util-1.4.1.tar.gz -C /optcd /optcp -R apr-1.4.6/ /opt/httpd-2.4.2/srclib/apr