1. 程式人生 > >python模塊之StringIO/cStringIO(內存文件)

python模塊之StringIO/cStringIO(內存文件)

c語言 value build rst bar tabs href ocs get

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\n‘)
    f.write(‘second\n‘)
    f_content = f.getvalue()
    print(f_content)

輸出:

first
second

參考資料:

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

python模塊之StringIO/cStringIO(內存文件)