国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Python StringIO模塊實現在內存緩沖區中讀寫數據

Python StringIO模塊實現在內存緩沖區中讀寫數據

2020-05-31 10:52腳本之家 Python

這篇文章主要介紹了Python StringIO模塊實現在內存緩沖區中讀寫數據,本文講解了使用實例、StringIO類中的方法、文件操作和字符串操作示例等內容,需要的朋友可以參考下

模塊是用類編寫的,只有一個StringIO類,所以它的可用方法都在類中。
此類中的大部分函數都與對文件的操作方法類似。

例:

復制代碼 代碼如下:

#coding=gbk
 
import StringIO, cStringIO, sys
 
s = StringIO.StringIO("JGood is a handsome boy")
s.write("JGood is a handsome boy \r\n")
s.write('okkkk中國')
s.seek(0)
print s.read()
 
#最后4個字節
s.seek(-4, 2)
print s.read()
 
#---- 結果 ----
#JGood is a handsome boy
#okkkk中國
#中國


 

 

通過例子,我們看到了StringIO的行為,基本與file一致。StringIO提供了一個方法,可以方便的獲取其中的數據:StringIO. getvalue()。如果使用read方法獲取其中的數據,必須通過seek先設置"文件指針"的位置。

Python標準模塊中還提供了一個cStringIO模塊,它的行為與StringIO基本一致,但運行效率方面比StringIO更好。但使用 cStringIO模塊時,有幾個注意點: 1. cStringIO.StringIO不能作為基類被繼承;2. 創建cStringIO.StringIO對象時,如果初始化函數提供了初始化數據,新生成的對象是只讀的。所以下面的代碼是錯誤的:s = cStringIO.StringIO("JGood/n"); s.write("OOOKKK");

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

復制代碼 代碼如下:

s=StringIO.StrngIO([buf])


此實例類似于open方法,不同的是它并不會在硬盤中生成文件,而只寄存在緩沖區;可選參數buf是一個str或unicode類型。它將會與其他后續寫入的數據存放在一起。
----------------------
StringIO類中的方法:
● read
● readline
● readlines
● write
● writelines
● getvalue
● truncate
● tell
● seek
● close
● isatty
● 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()
刷新內部緩沖區。
----------------------
dir(StringIO.StringIO)的返回值中還包含有一個test函數,不過不用理睬它,它沒有任何意義

 

=====================================================

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

復制代碼 代碼如下:


import string, os, sys
import StringIO

 

def writedata(fd, msg):
    fd.write(msg)
   
f = open('aaa.txt', 'w')

writedata(f, "xxxxxxxxxxxx")
f.close()

s = StringIO.StringIO()
writedata(s, "xxxxxxxxxxxxxx")

 

因為文件對象和StringIO大部分的方法都是一樣的,比如read, readline, readlines, write, writelines都是有的,這樣,StringIO就可以非常方便的作為"內存文件對象"。

復制代碼 代碼如下:


  import string
import StringIO

 

s = StringIO.StringIO()
s.write("aaaa")
lines = ['xxxxx', 'bbbbbbb']
s.writelines(lines)

s.seek(0)
print s.read()

print s.getvalue()
s.write(" ttttttttt ")
s.seek(0)
print s.readlines()
print s.len


StringIO還有一個對應的c語言版的實現,它有更好的性能,但是稍有一點點的區別,cStringIO沒有len和pos屬性。(還有,cStringIO不支持Unicode編碼)

 

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 激情五月综合 | 亚洲国产二区 | av一区在线观看 | 日韩视频一区二区三区 | 免费高潮 | 免费在线黄色电影 | 国产精品福利在线观看 | 久久97视频 | 国产精品一区二区三区免费视频 | 99成人在线| 亚洲精品欧美 | 欧美成人精精品一区二区频 | 极品国产在线 | 亚洲国产精品成人 | 国产一区二区精品在线观看 | 亚洲精品一区二区三区不 | 亚洲免费在线观看 | 国产美女精品视频免费观看 | 日韩欧美精品在线 | 自拍偷拍欧美 | 午夜视频在线观看一区二区三区 | 91免费在线视频观看 | 亚洲国产精品美女 | 精精国产xxxx视频在线播放7 | 色婷婷亚洲一区二区三区 | 在线视频 中文字幕 | 在线观看成人 | 亚洲男人的天堂网站 | 在线观看亚洲精品 | 欧美日韩专区 | 日日夜夜摸 | 国产视频一区二区在线 | 久久久精品视频免费观看 | 一区二区三区精品视频 | 精品国产欧美 | 欧美一区视频 | 成人免费视频 | 欧美淫视频 | 日韩欧美视频免费观看 | 国产福利在线播放 | 免费一区二区三区 |