python 内存中的文件操作 StringIO cStringIO 简介
StringIO
StringIO的行为与file对象非常像,但它不是磁盘上文件,而是一个内存里的“文件”,我们可以将操作磁盘文件那样来操作StringIO。一个简单的例子,让你对StringIO有一个感性的认识:
from StringIO import StringIO# 生成一个StringIO对象,当前缓冲区内容为ABCDEF
s = StringIO('ABCDEF')
# 从开头写入,将会覆盖ABC
s.write('abc')
# 每次使用read()读取前,必须seek()
# 定位到开头
s.seek(0)
# 将输出abcDEF
print s.read()
# 定位到第二个字符c
s.seek(2)
# 从当前位置一直读取到结束,将输出cDEF
print s.read()
s.seek(3)
# 从第三个位置读取两个字符,将输出DE
print s.read(2)
s.seek(6)
# 从指定位置写入
s.write('GH')
s.seek(0)
# 将输出abcDEFGH
print s.read()
# 如果读取所有内容,可以直接使用getvalue()
# 将输出abcDEFGH
print s.getvalue()
通过例子,我们看到了StringIO的行为,基本与file一致。StringIO提供了一个方法,可以方便的获取其中的数据:StringIO. getvalue()。如果使用read方法获取其中的数据,必须通过seek先设置"文件指针"的位置。
cStringIO
Python标准模块中还提供了一个cStringIO模块,它的行为与StringIO基本一致,但运行效率方面比StringIO更好。因此,import的时候会写成下面的方式,但使用 cStringIO模块时,有几个注意点:
1. cStringIO.StringIO不能作为基类被继承;
2. 创建cStringIO.StringIO对象时,如果初始化函数提供了初始化数据,新生成的对象是只读的。
try:from cStringIO import StringIO
except ImportError:from StringIO import StringIOs = StringIO('A')
s.write('abc')
# 会提示:AttributeError: 'cStringIO.StringI' object has no attribute 'write'
print s.getvalue()
python 内存中的文件操作 StringIO cStringIO 简介相关推荐
- Python中的文件操作和异常
Python中的文件操作和异常 文章目录 Python中的文件操作和异常 一.文件 01. 文件的概念 1.1 文件的概念和作用 1.2 文件的存储方式 文本文件和二进制文件 02. 文件的基本操作 ...
- 【C 语言】文件操作 ( C 语言中的文件操作函数 | 磁盘与内存缓冲区 | 缓冲区工作机制 )
文章目录 一.C 语言中的文件操作函数 二.磁盘与内存缓冲区 三.缓冲区工作机制 一.C 语言中的文件操作函数 读取 文本文件 可以使用 getc , fgets , fscanf 函数 , 向 文本 ...
- 配置内存中OLTP文件组提高性能
在今天的文章里,我想谈下使用内存中OLTP的内存优化文件组来获得持久性,还有如何配置它来获得高性能.在进入正题前,我想简单介绍下使用你数据库里这个特定文件组,内存OLTP是如何获得持久性的. 内存中O ...
- 在python程序中的进程操作
********在python程序中的进程操作********之前我们已经了解了很多进程相关的理论知识,了解进程是什么应该不再困难了,刚刚我们已经了解了, 运行中的程序就是一个进程.所有的进程都是通过 ...
- modelsim读取文件中的数据_modelsim中的文件操作—— 大数据测试
在modelsim中不可避免的需要进行文件操作,在窗口中查看代码的操作情况,下面是我自己M序列实验中的一段测试代码 integer i,j ,k,m; integer m_dataFILE , ind ...
- python在中小学教学中的应用-在python程序中的进程操作
********在python程序中的进程操作********之前我们已经了解了很多进程相关的理论知识,了解进程是什么应该不再困难了,刚刚我们已经了解了, 运行中的程序就是一个进程.所有的进程都是通过 ...
- 剖析VC中的文件操作
剖析VC中的文件操作 2002-8-4 17:33:29 燕山大学 聂栋栋 阅读次数: 18539 各种关于文件的操作在程序设计中十分常见,如果能对这些操作都了如指掌,就可以根据实际情况找 ...
- Visual C++编程中的文件操作
Visual C++编程中的文件操作 作者:燕山大学 聂栋栋 各种关于文件的操作在程序设计中十分常见,如果能对这些操作都了如指掌,就可以根据实际情况找到最佳的解决方案,从而可以在较短的时间内编写出高效 ...
- 【C语言复习】C语言中的文件操作
C语言中的文件操作 写在前面 文件操作 什么是文件 文件的分类 文件名 文件的操作 文件指针 文件的打开和关闭 文件的顺序读写 文件的随机读写 fseek ftell rewind feof 写在前面 ...
最新文章
- 浙江大学PAT考试1009~1012(1010上帝是冠军。。)
- windows调用ubuntu下的sublimeText2环境搭建
- JVM - G1初探
- 成功解决ModuleNotFoundError: No module named 'urllib2'
- 练习、C# 结构体、冒泡排序
- 【Android开发】NDK开发(3)-jni开发技巧
- MediatR 知多少
- python 抓取微博评论破亿_一篇文章教会你使用Python定时抓取微博评论
- python发送html格式邮件,python 发送html格式邮件到qq(示例代码)
- 【个人笔记】OpenCV4 C++ 快速入门 14课
- DSP之时钟与定时器之四看门狗定时器
- 忆往昔,惜光阴似箭,不堪回首
- java web 限下载速_JavaWeb实现文件上传与下载的方法
- mysql导入100000000需要多久_mysql做千万条压测数据
- “快手极速版”的模拟器多开方法
- win10 windows许可证即将过期的解决办法
- 【论文笔记】PSEUDOSEG: DESIGNING PSEUDO LABELS FOR SEMANTIC SEGMENTATION
- 美团再次冲击网约车市场,滴滴或将加快上市进程
- excel - 循环语句(for-next,do-loop,for-each-next)
- 认识Access中的MDE文件
热门文章
- Openstack_SQLAlchemy 修改数据库的表结构
- Windows 08 R2_组策略
- Python基本语法_异常处理详解
- Cannot create file Altium\AD15\Library\BSDL\Generic\BSDL_FileMap.txt.拒绝访问
- 位置式PID与增量式PID的介绍和代码实现
- CodeBlocks主题和字体
- STM32 DMA正常模式等待传输完成和开始下一次传输
- CentOS 7.4下Redis及集群的安装及配置
- CSS核心内容整理 - (中)
- [Ruby编程语言].弗拉纳根_松本行弘读书笔记