python模块之StringIO使用示例


Posted in Python onApril 08, 2015

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属性。
Python 相关文章推荐
使用Python内置的模块与函数进行不同进制的数的转换
Mar 12 Python
Python算术运算符实例详解
May 31 Python
浅析使用Python操作文件
Jul 31 Python
python读文件保存到字典,修改字典并写入新文件的实例
Apr 23 Python
python匿名函数的使用方法解析
Oct 10 Python
python3 动态模块导入与全局变量使用实例
Dec 22 Python
pymysql之cur.fetchall() 和cur.fetchone()用法详解
May 15 Python
Python中有几个关键字
Jun 04 Python
python MD5加密的示例
Oct 19 Python
关于Python3的import问题(pycharm可以运行命令行import错误)
Nov 18 Python
Python如何批量生成和调用变量
Nov 21 Python
Python爬虫+Tkinter制作一个翻译软件的示例
Feb 20 Python
Python StringIO模块实现在内存缓冲区中读写数据
Apr 08 #Python
Python实现的简单文件传输服务器和客户端
Apr 08 #Python
操作Windows注册表的简单的Python程序制作教程
Apr 07 #Python
编写简单的Python程序来判断文本的语种
Apr 07 #Python
Python实现在线程里运行scrapy的方法
Apr 07 #Python
Python实现从脚本里运行scrapy的方法
Apr 07 #Python
Python自定义scrapy中间模块避免重复采集的方法
Apr 07 #Python
You might like
注册页面之前先验证用户名是否存在的php代码
2012/07/14 PHP
深入解析fsockopen与pfsockopen的区别
2013/07/05 PHP
PHP6 中可能会出现的新特性预览
2014/04/04 PHP
ThinkPHP实现一键清除缓存方法
2014/06/26 PHP
PHP原生函数一定好吗?
2014/12/08 PHP
php基于Snoopy解析网页html的方法
2015/07/09 PHP
利用window.name实现windowStorage代码分享
2014/01/02 Javascript
js实现完美兼容各大浏览器的人民币大小写相互转换
2015/10/29 Javascript
jQuery增加与删除table列的方法
2016/03/01 Javascript
一款简单的jQuery图片标注效果附源码下载
2016/03/22 Javascript
JavaScript的Vue.js库入门学习教程
2016/05/23 Javascript
Node.js中如何合并两个复杂对象详解
2016/12/31 Javascript
原生js实现弹出层效果
2017/01/20 Javascript
thinkjs 文件上传功能实例代码
2017/11/08 Javascript
Electron-vue脚手架改造vue项目的方法
2018/10/22 Javascript
javascript 关于赋值、浅拷贝、深拷贝的个人理解
2019/11/01 Javascript
vue-resource post数据时碰到Django csrf问题的解决
2020/03/13 Javascript
Node.js API详解之 tty功能与用法实例分析
2020/04/27 Javascript
js中复选框的取值及赋值示例详解
2020/10/18 Javascript
js实现简单的倒计时
2021/01/28 Javascript
[00:12]2018DOTA2亚洲邀请赛SOLO赛 MidOne是否中单第一人?
2018/04/05 DOTA
win系统下为Python3.5安装flask-mongoengine 库
2016/12/20 Python
Python使用修饰器执行函数的参数检查功能示例
2017/09/26 Python
python卸载后再次安装遇到的问题解决
2019/07/10 Python
python中必要的名词解释
2019/11/20 Python
python numpy库np.percentile用法说明
2020/06/08 Python
详解使用python爬取抖音app视频(appium可以操控手机)
2021/01/26 Python
CSS3 圆角效果
2009/07/15 HTML / CSS
给分销商的致歉信
2014/01/14 职场文书
司仪主持词两篇
2014/03/22 职场文书
优质服务口号
2014/06/11 职场文书
审计局班子四风对照检查材料思想汇报
2014/10/07 职场文书
2015年教师工作总结范文
2015/03/31 职场文书
MySQL 分区表中分区键为什么必须是主键的一部分
2022/03/17 MySQL
详解Spring Security中的HttpBasic登录验证模式
2022/03/17 Java/Android
JS实现简单九宫格抽奖
2022/06/28 Javascript