python模块之StringIO/cStringIO(内存文件)

1. StringIO/cStringIO是什么

这个模块提供了一个类,这个类的实例就像是一个文件一样可以读写,实际上读写的是一个字符串缓存,也可以称之为内存文件。

StringIO和文件对象拥有共同的父类IOBase,因此方法基本上都是一致的,StringIO就可以看做是一个内存文件。

想了一下,StringIO可能就相当于Java中的StringBuffer或者StringBuilder之类的吧...它是否也可以当做一个写文件缓存,当我要写很多零碎的内容的时候我先把内容都写到StringIO中,当写StringIO完了我再读出来写入到磁盘中,这不就能实现缓存写了吗O(∩_∩)O哈哈~

在py2.x中cStringIO是c语言版本的StringIO,它的性能要稍微好一些,但是py3.x已经没有cStringIO了。

2. 如何使用

StringIO的使用与普通的文件对象差不多,下面是一个简单的例子:

#! /usr/bin/python

from io import StringIO

if __name__ == '__main__':
    f = StringIO()
    f.write('first
')
    f.write('second
')
    f_content = f.getvalue()
    print(f_content)

输出:

first
second

参考资料:

1. https://docs.python.org/2/library/stringio.html

原文地址:https://www.cnblogs.com/cc11001100/p/7630475.html