文档章节

python中的StringIO模块

指尖跳动的精灵
 指尖跳动的精灵
发布于 2015/04/16 20:48
字数 682
阅读 3944
收藏 0
点赞 0
评论 0

此模块主要用于在内存缓冲区中读写数据。

模块是用类编写的,只有一个StringIO类,所以它的可用方法都在类中。

此类中的大部分函数都与对文件的操作方法类似。

例:
1      #coding=gbk
2       
3      import StringIO, cStringIO, sys
4       
5      s = StringIO.StringIO("JGood is a handsome boy")
6      s.write("JGood is a handsome boy \r\n")
7      s.write('okkkk中国')
8      s.seek(0)
9      print s.read()
10       
11      #最后4个字节
12      s.seek(-4, 2)
13      print s.read()
14       
15      #---- 结果 ----
16      #JGood is a handsome boy 
17      #okkkk中国
18      #中国

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

s=StringIO.StrngIO([buf])

此实例类似于open方法,不同的是它并不会在硬盘中生成文件,而只寄存在缓冲区;可选参数buf是一个str或unicode类型。它将会与其他后续写入的数据存放在一起。

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

StringIO类中的方法:

....● read

....● readline

....● readlines

....● write

....● writelines

....● getvalue

....● truncate

....● tell

....● seek

....● close

....● isatty

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

刷新内部缓冲区。

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

dir(StringIO.StringIO)的返回值中还包含有一个test函数,不过不用理睬它,它没有任何意义

本文转载自:http://blog.163.com/kat_/blog/static/189284269201152522039410/

共有 人打赏支持
指尖跳动的精灵
粉丝 15
博文 85
码字总数 48459
作品 0
海淀
Python基础——内置hashlib、IO、Json、codecs模块(0426)

一、hashlib 加密模块:提供了很多加密的算法 常见的加密方式:MD5 RSA,加密之后不可逆。没法破解。 1、以MD5的方式加密字符串(Python 3) 示例 结果 2、以MD5的方式加密字符串(Python 2)...

python初雪之路
04/27
0
0
Python中os与sys两模块的区别

前言 os与sys模块的官方解释如下: os: This module provides a portable way of using operating system dependent functionality. 这个模块提供了一种方便的使用操作系统函数的方法。 sys:...

xiaoge2016
04/22
0
0
0. Python3源码—编译

0.1. 整体架构 在最高的层次上,Python的整体架构可以分为三个主要的部分: 左:Python提供的大量的模块、库以及用户自定义的模块; 右:Python的运行时环境,包括对象/类型系统(Object/Ty...

whj0709
06/06
0
0
python学习——基础(九)

读写文件是最常见的IO操作。Python内置了读写文件的函数,用法和C是兼容的。 try: finally: 读取文件必须执行close方法;另一种方法: with open(r'C:UserssycDesktoptemp.txt') as f: Pyth...

随性_
2015/10/27
0
0
模块使用(md5加密、StringIO、JSON)

md5加密 在英语中hex有十六进制的意思,hexdigest()因此该方法是将hash中的数据转换成数据,其中只包含十六进制的数字 使用encode 防止对中文加密时出现乱码 方式一:对123456ling加密 impo...

jiekegz
06/26
0
0
Python模块学习 ---- pickle, cPickle 对象序列化/反序列化

上次学习过marshal模块用于序列化和反序列化,但marshal的功能比较薄弱,只支持部分内置数据类型的序列化/反序列化,对于用户自定义的类型就无能为力,同时marshal不支持自引用(递归引用)的对...

索隆
2012/05/04
0
0
Python的PIL库实现验证码图片

现在的网页中,为了防止机器人提交表单,图片验证码是很常见的应对手段之一。这里就不详细介绍了,相信大家都遇到过。 现在就给出用Python的PIL库实现验证码图片的代码。代码中有详细注释。 ...

taote
2013/01/31
0
0
Python代码片段,不断更新

使用time模块,在Python代码中实现停顿 content = requests.get('https://www.python.org/static/community_logos/python-logo-master-v3-TM.png').contentwith open(pname, 'wb') as p: cla......

alazyer
2014/03/18
0
0
Python 使用 HTMLTestRunner.py 生成测试报告

HTMLTestRunner 是 Python 标准库的 unittest 模块的一个扩展,它可以生成 HTML 的测试报告。 HTMLTestRunner.py python2 版本 下载地址:http://tungwaiyip.info/software/HTMLTestRunner....

xjtuhit
2017/11/06
0
0
Python文件操作读写文件

最基本的文件操作当然就是在文件中读写数据。这也是很容易掌握的。现在打开一个文件以进行写操作: 1. fileHandle = open ( 'test.txt', 'w' ) fileHandle = open ( 'test.txt', 'w' ) ‘w'是...

帅高富
2013/12/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

垃圾回收算法

一 如何判断对象可以回收 1 引用计数法 思路大概为:给对象添加一个引用计数器,每当有一个地方引用它时,计数器值加1;当引用失效时,计数器减1;任何时刻计算器为0的对象就是不可能再被使用...

sen_ye
8分钟前
0
0
Activiti简介(学习总结一)

一、介绍 activiti是使用命令模式设计基于bpmn2.0的一款开源工作流引擎。 工作流简单举例:提交请假申请->经理审批->结束。这就是一个简单流程。activiti支持用户自定义流程。配置各个流程对...

沙shasha
8分钟前
0
0
VCL界面控件DevExpress VCL Controls发布v18.1.3|附下载

DevExpress VCL Controls是 Devexpress公司旗下最老牌的用户界面套包。所包含的控件有:数据录入,图表,数据分析,导航,布局,网格,日程管理,样式,打印和工作流等,让您快速开发出完美、...

Miss_Hello_World
9分钟前
0
0
加米谷大数据培训:云计算、大数据和人工智能之间的关系

一般谈云计算的时候会提到大数据、谈人工智能的时候会提大数据、谈人工智能的时候会提云计算……感觉三者之间相辅相成又不可分割。 一、云计算最初的目标 云计算最初的目标是对资源的管理,管...

加米谷大数据
14分钟前
1
0
java集合元素的默认大小

当底层实现涉及到扩容时,容器或重新分配一段更大的连续内存(如果是离散分配则不需要重新分配,离散分配都是插入新元素时动态分配内存),要将容器原来的数据全部复制到新的内存上,这无疑使...

竹叶青出于蓝
17分钟前
1
0
Java快速开发平台,JEECG 3.7.7闪电版本发布,增加多套主流UI代码生成器模板

JEECG 3.7.7 闪电版本发布,提供5套主流UI代码生成器模板 导读 ⊙平台性能优化,速度闪电般提升 ⊙提供5套新的主流UI代码生成器模板(Bootstrap表单+BootstrapTable列表\ ElementUI列表表单)...

Jeecg
20分钟前
0
0
export 和 module.export 的区别

在浏览器端 js 里面,为了解决各模块变量冲突等问题,往往借助于 js 的闭包把左右模块相关的代码都包装在一个匿名函数里。而 Nodejs 编写模块相当的自由,开发者只需要关注 require,exports,...

孟飞阳
22分钟前
1
0
技术教育的兴起

技术教育的兴起 作者: 阮一峰 1、 有一年,我在台湾环岛旅行。 花莲的海边,我遇到一对台湾青年夫妻,带着女儿在海滩上玩。我们聊了起来。 当时,我还在高校当老师。他们问我,是否觉得台湾...

吕伯文
22分钟前
0
0
Linux服务器下的HTTP抓包分析

说到抓包分析,最简单的办法莫过于在客户端直接安装一个Wireshark或者Fiddler了,但是有时候由于客户端开发人员(可能是第三方)知识欠缺或者其它一些原因,无法顺利的在客户端进行抓包分析,...

mylxsw
27分钟前
0
0
mybatis3-javaapi

sqlSessionFactoryBuilder->sqlSessionFactory->sqlSession<-rowbound<-resultHandler myBatis uses a Java enumeration wrapper for transaction isolation levels, called TransactionIsol......

writeademo
30分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部