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")
相关文章
相关标签/搜索