python中的StringIO模塊

StringIO常常被用來做爲字符串的緩存,應爲StringIO有個好處,他的有些接口和文件操做是一致的,也就是說用一樣的代碼,能夠同時當成文件操做或者StringIO操做。python

1、例子

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函數

2、StringIO類中的方法:

  1. read
  2. readline
  3. readlines
  4. write
  5. writeline
  6. getvalue
  7. truncate
  8. tell
  9. seek
  10. close
  11. isatty
  12. flush

----------------------

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

相關文章
相關標籤/搜索