StringIO常常被用來做爲字符串的緩存,應爲StringIO有個好處,他的有些接口和文件操做是一致的,也就是說用一樣的代碼,能夠同時當成文件操做或者StringIO操做。python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
import
StringIO
s
=
StringIO.StringIO()
s.write(
'www.baidu.com\r\n'
)
s.write(
'news.realsil.com.cn'
)
s.seek(
0
)
print
'*'
*
20
print
s.tell()
print
s.read()
print
'*'
*
20
print
s.tell()
print
s.read()
print
'*'
*
20
print
s.tell()
print
s.getvalue()
print
'*'
*
20
print
s.tell()
s.seek(
-
4
,
2
)
print
s.read()
|
運行結果:web
********************
0
www.baidu.com
news.realsil.com.cn
********************
34緩存
********************
34
www.baidu.com
news.realsil.com.cn
********************
34
m.cn函數
----------------------
s.read([n])
參數n限定讀取長度,int類型;缺省狀態爲從當前讀寫位置讀取對象s中存儲的全部數據。讀取結束後,讀寫位置被移動。
----------------------
s.readline([length])
參數length限定讀取的結束位置,int類型,缺省狀態爲None:從當前讀寫位置讀取至下一個以「\n」爲結束符的當前行。讀寫位置被移動。
----------------------
s.readlines([sizehint])
參數sizehint爲int類型,缺省狀態爲讀取全部行並做爲列表返回,除此以外從當前讀寫位置讀取至下一個以「\n」爲結束符的當前行。讀寫位置被移動。
----------------------
s.write(s)
從讀寫位置將參數s寫入給對象s。參數s爲str或unicode類型。讀寫位置被移動。
----------------------
s.writelines(list)
從讀寫位置將list寫入給對象s。參數list爲一個列表,列表的成員爲str或unicode類型。讀寫位置被移動。
----------------------
s.getvalue()
此函數沒有參數,返回對象s中的全部數據。
----------------------
s.truncate([size])
從讀寫位置起切斷數據,參數size限定裁剪長度,缺省值爲None。
----------------------
s.tell()
返回當前讀寫位置。
----------------------
s.seek(pos[,mode])
移動當前讀寫位置至pos處,可選參數mode爲0時將讀寫位置移動至pos處,爲1時將讀寫位置從當前位置起向後移動pos個長度,爲2時將讀寫位置置於末尾處再向後移動pos個長度;默認爲0。
----------------------
s.close()
釋放緩衝區,執行此函數後,數據將被釋放,也不可再進行操做。
----------------------
s.isatty()
此函數老是返回0。不論StringIO對象是否已被close()。
----------------------
s.flush()
刷新內部緩衝區。
----------------------spa