注意: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.write('news.realsil.com.cn')
s.seek(0)
print '*' * 20
print s.tell()
print s.read()
 
print '*' * 20
print s.tell()
print s.read()
 
print '*' * 20
print s.tell()
print s.getvalue()
 
print '*' * 20
print s.tell()
s.seek(-4,2)
print s.read()

运行结果:

********************
0
www.baidu.com
news.realsil.com.cn
********************
34

********************
34
www.baidu.com
news.realsil.com.cn
********************
34
m.cn

二、StringIO类中的方法:

  1. read
  2. readline
  3. readlines
  4. write
  5. writeline
  6. getvalue
  7. truncate
  8. tell
  9. seek
  10. close
  11. isatty
  12. flush

----------------------

s.read([n])

参数n限定读取长度,int类型;缺省状态为从当前读写位置读取对象s中存储的所有数据。读取结束后,读写位置被移动。

----------------------

s.readline([length])

参数length限定读取的结束位置,int类型,缺省状态为None:从当前读写位置读取至下一个以“\n”为结束符的当前行。读写位置被移动。

----------------------

s.readlines([sizehint])

参数sizehint为int类型,缺省状态为读取所有行并作为列表返回,除此之外从当前读写位置读取至下一个以“\n”为结束符的当前行。读写位置被移动。

----------------------

s.write(s)

从读写位置将参数s写入给对象s。参数s为str或unicode类型。读写位置被移动。

----------------------

s.writelines(list)

从读写位置将list写入给对象s。参数list为一个列表,列表的成员为str或unicode类型。读写位置被移动。

----------------------

s.getvalue()

此函数没有参数,返回对象s中的所有数据。

----------------------

s.truncate([size])

从读写位置起切断数据,参数size限定裁剪长度,缺省值为None。

----------------------

s.tell()

返回当前读写位置。

----------------------

s.seek(pos[,mode])

移动当前读写位置至pos处,可选参数mode为0时将读写位置移动至pos处,为1时将读写位置从当前位置起向后移动pos个长度,为2时将读写位置置于末尾处再向后移动pos个长度;默认为0。

----------------------

s.close()

释放缓冲区,执行此函数后,数据将被释放,也不可再进行操作。

----------------------

s.isatty()

此函数总是返回0。不论StringIO对象是否已被close()。

----------------------

s.flush()

刷新内部缓冲区。

----------------------

转载:python中的StringIO模块的更多相关文章

  1. python中的StringIO模块

    python中的StringIO模块 标签:python StringIO 此模块主要用于在内存缓冲区中读写数据.模块是用类编写的,只有一个StringIO类,所以它的可用方法都在类中.此类中的大部分 ...

  2. [转载]python中的sys模块(二)

    #!/usr/bin/python # Filename: using_sys.py import sys print 'The command line arguments are:' for i ...

  3. [转载]Python中的sys模块

    #!/usr/bin/python # Filename: cat.py import sys def readfile(filename): '''Print a file to the stand ...

  4. Python中的random模块,来自于Capricorn的实验室

    Python中的random模块用于生成随机数.下面介绍一下random模块中最常用的几个函数. random.random random.random()用于生成一个0到1的随机符点数: 0 < ...

  5. Python中的logging模块

    http://python.jobbole.com/86887/ 最近修改了项目里的logging相关功能,用到了python标准库里的logging模块,在此做一些记录.主要是从官方文档和stack ...

  6. Python中的random模块

    Python中的random模块用于生成随机数.下面介绍一下random模块中最常用的几个函数. random.random random.random()用于生成一个0到1的随机符点数: 0 < ...

  7. 浅析Python中的struct模块

    最近在学习python网络编程这一块,在写简单的socket通信代码时,遇到了struct这个模块的使用,当时不太清楚这到底有和作用,后来查阅了相关资料大概了解了,在这里做一下简单的总结. 了解c语言 ...

  8. python中的select模块

    介绍: Python中的select模块专注于I/O多路复用,提供了select  poll  epoll三个方法(其中后两个在Linux中可用,windows仅支持select),另外也提供了kqu ...

  9. Python中的re模块--正则表达式

    Python中的re模块--正则表达式 使用match从字符串开头匹配 以匹配国内手机号为例,通常手机号为11位,以1开头.大概是这样13509094747,(这个号码是我随便写的,请不要拨打),我们 ...

随机推荐

  1. Alpha版使用说明书

     游戏规则:             玩家是黑色的小煤球哦!             通过方向键或者ASDW,来控制小球移动(上.下.左.右).             累计时间,直到碰到了红色的小球 ...

  2. Android Full Screen

    http://talentprince.github.io/blog/2015/01/07/android-activity-quan-ping-fang-fa-zong-jie/

  3. 1Caesar加密

    Julius Caesar发明的较早的加密术,举个例子: 明文: meet me after the toga party 密文:   PHHW PH DIWHU WKH WRJD SDUWB 其实就 ...

  4. WPF项目中所遇到的一些问题集

    1. 没有Timer控件 解决方案: 第一步:申明一个DispatcherTimer 类的变量, private DispatcherTimer timer; //定时控件 第二步:初始化这个类 ti ...

  5. Python、Ruby中的SWIG使用案例

    案例一:Python通过SWIG使用C码 linux系统 照着文档[1]做就是了~! 案例二:Python程序调用张华平博士最新发布的中文分词库“NLPIR – ICTCLAS2013”为例~! wi ...

  6. HDU4010 (动态树)

    Problem Query on The Trees 题目大意 给一棵树,有点权,要求维护4种操作. 操作1:加一条边. 操作2:删一条边. 操作3:将一条路径上的点权增加w. 操作4:询问一条路径上 ...

  7. Discuz对不起,您安装的不是正版应用的解决办法

    方法三(2014年新增最简单方法.) .打开/source /function/function_cloudaddons.php这个文件,2.搜索:cloudaddons_validator,3.一般 ...

  8. NOPI Excel插件导入导出 图片批注

    dateTable导出到excel的MemoryStream /// <summary> /// DataTable导出到Excel的MemoryStream Export() /// & ...

  9. Linux mint 18版本开启SSH服务

    linux mint 18版本默认是没有安装ssh server的 需要手动安装 安装ssh server: 此命令需要联网,会自动下载安装 安装之后看是否开始了ssh, 看到ssh-agent 和s ...

  10. Sunny-Code Beta版总结会议

    时间:2015-6-12 地点:基教601 参会人员:Sunny-Code全体成员 设想和目标 我们的软件要解决什么问题?是否定义得很清楚? 我们打算做一款集成小蝴蝶功能.Ip快速修改功能.WiFi共 ...