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 简介相关推荐

  1. Python中的文件操作和异常

    Python中的文件操作和异常 文章目录 Python中的文件操作和异常 一.文件 01. 文件的概念 1.1 文件的概念和作用 1.2 文件的存储方式 文本文件和二进制文件 02. 文件的基本操作 ...

  2. 【C 语言】文件操作 ( C 语言中的文件操作函数 | 磁盘与内存缓冲区 | 缓冲区工作机制 )

    文章目录 一.C 语言中的文件操作函数 二.磁盘与内存缓冲区 三.缓冲区工作机制 一.C 语言中的文件操作函数 读取 文本文件 可以使用 getc , fgets , fscanf 函数 , 向 文本 ...

  3. 配置内存中OLTP文件组提高性能

    在今天的文章里,我想谈下使用内存中OLTP的内存优化文件组来获得持久性,还有如何配置它来获得高性能.在进入正题前,我想简单介绍下使用你数据库里这个特定文件组,内存OLTP是如何获得持久性的. 内存中O ...

  4. 在python程序中的进程操作

    ********在python程序中的进程操作********之前我们已经了解了很多进程相关的理论知识,了解进程是什么应该不再困难了,刚刚我们已经了解了, 运行中的程序就是一个进程.所有的进程都是通过 ...

  5. modelsim读取文件中的数据_modelsim中的文件操作—— 大数据测试

    在modelsim中不可避免的需要进行文件操作,在窗口中查看代码的操作情况,下面是我自己M序列实验中的一段测试代码 integer i,j ,k,m; integer m_dataFILE , ind ...

  6. python在中小学教学中的应用-在python程序中的进程操作

    ********在python程序中的进程操作********之前我们已经了解了很多进程相关的理论知识,了解进程是什么应该不再困难了,刚刚我们已经了解了, 运行中的程序就是一个进程.所有的进程都是通过 ...

  7. 剖析VC中的文件操作

    剖析VC中的文件操作 2002-8-4 17:33:29   燕山大学   聂栋栋   阅读次数: 18539 各种关于文件的操作在程序设计中十分常见,如果能对这些操作都了如指掌,就可以根据实际情况找 ...

  8. Visual C++编程中的文件操作

    Visual C++编程中的文件操作 作者:燕山大学 聂栋栋 各种关于文件的操作在程序设计中十分常见,如果能对这些操作都了如指掌,就可以根据实际情况找到最佳的解决方案,从而可以在较短的时间内编写出高效 ...

  9. 【C语言复习】C语言中的文件操作

    C语言中的文件操作 写在前面 文件操作 什么是文件 文件的分类 文件名 文件的操作 文件指针 文件的打开和关闭 文件的顺序读写 文件的随机读写 fseek ftell rewind feof 写在前面 ...

最新文章

  1. 浙江大学PAT考试1009~1012(1010上帝是冠军。。)
  2. windows调用ubuntu下的sublimeText2环境搭建
  3. JVM - G1初探
  4. 成功解决ModuleNotFoundError: No module named 'urllib2'
  5. 练习、C# 结构体、冒泡排序
  6. 【Android开发】NDK开发(3)-jni开发技巧
  7. MediatR 知多少
  8. python 抓取微博评论破亿_一篇文章教会你使用Python定时抓取微博评论
  9. python发送html格式邮件,python 发送html格式邮件到qq(示例代码)
  10. 【个人笔记】OpenCV4 C++ 快速入门 14课
  11. DSP之时钟与定时器之四看门狗定时器
  12. 忆往昔,惜光阴似箭,不堪回首
  13. java web 限下载速_JavaWeb实现文件上传与下载的方法
  14. mysql导入100000000需要多久_mysql做千万条压测数据
  15. “快手极速版”的模拟器多开方法
  16. win10 windows许可证即将过期的解决办法
  17. 【论文笔记】PSEUDOSEG: DESIGNING PSEUDO LABELS FOR SEMANTIC SEGMENTATION
  18. 美团再次冲击网约车市场,滴滴或将加快上市进程
  19. excel - 循环语句(for-next,do-loop,for-each-next)
  20. 认识Access中的MDE文件

热门文章

  1. Openstack_SQLAlchemy 修改数据库的表结构
  2. Windows 08 R2_组策略
  3. Python基本语法_异常处理详解
  4. Cannot create file Altium\AD15\Library\BSDL\Generic\BSDL_FileMap.txt.拒绝访问
  5. 位置式PID与增量式PID的介绍和代码实现
  6. CodeBlocks主题和字体
  7. STM32 DMA正常模式等待传输完成和开始下一次传输
  8. CentOS 7.4下Redis及集群的安装及配置
  9. CSS核心内容整理 - (中)
  10. [Ruby编程语言].弗拉纳根_松本行弘读书笔记