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