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