python模塊之StringIO/cStringIO(內存文件)
阿新 • • 發佈:2017-10-06
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(內存文件)