python中的StringIO模塊


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

一、例子

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()

運行結果:

********************
0
www.baidu.com
news.realsil.com.cn
********************
34

********************
34
www.baidu.com
news.realsil.com.cn
********************
34
m.cn

二、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()

刷新內部緩沖區。

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

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM