StringIO和BytesIO


StringIOpython


io模塊中的類socket

from io import StringIOide

內存中,開闢的一個文本模式的buffer,能夠像文件對象同樣操做它;優化

當close方法被調用的時候,這個buffer會被釋放;spa

from io import StringIO
#內存中構建
sio = StringIO()#像文件對象同樣操做
print(sio.readable(), sio.writable(), sio.seekable())
sio.write("limingyu\nPython")
sio.seek(0)
print(sio.readline())
print(sio.getvalue())#無視指針,輸出所有內容
sio.close()

好處:
.net

  通常來講,磁盤的操做比內存的操做要慢得多;內存足夠的狀況下,通常的優化思路是少落地,減小磁盤IO的過程,能夠大大提升程序的運行效率。指針


BytesIO
對象


io模塊中的類
內存

from io import BytesIOget

內存中,開闢的一個二進制模式的buffer,能夠像文件對象同樣操做它;

當close方法被調用的時候,這個buffer會被釋放;

from io import BytesIO

bio = BytesIO()
print(bio.readable(), bio.writable(), bio.seekable())
bio.write(b'limingyu\nPython')
bio.seek(0)
print(bio.readline())
print()
print(bio.getvalue())
bio.close()

file-like對象


類文件對象,能夠像文件對象同樣操做;

socket對象,輸入輸出對象(stdin、stdout)都是類文件對象

from sys import stdout

f = stdout
print(type(f))
f.write("90data.net")
相關文章
相關標籤/搜索