当前位置: 首页 > news >正文

StringIO和BytesIO

StringIO和BytesIO

StringIO:IO模块中的类
1、内存中开辟的一个文本模式的buffer,可以像文件对象一样操作它。
2、当close方法被调用时,这个buffer会被释放

StringIO操作
getvalue()获取全部内容,跟文件指针没有关系
在内存中构建一个StringIO对象
sio = StringIO() #像文件对象一样操作
StringIO优势:
一般来说,磁盘的操作比内存的操作要慢的多,内存足够的情况下,一般的优化思路是少落地,减少磁盘IO的过程,可以大大提高程序的运行效率

BytesIO: IO模块中的类
1、内存中开辟的一个文本模式的buffer,可以像文件对象一样操作它。
2、当close方法被调用时,这个buffer会被释放
在内存中构建一个StringIO对象
sio = BytesIO() #像文件对象一样操作

点击查看代码
bio = BytesIO()
print(bio.readable(),bio.writable(),bio.seekable()))
bio.write("mageedu\nPython")
bio.seek(0)
print(bio.readline())
print(bio.getvalue())  #无视指针,输出全部内容
bio.close()

file-like对象
类文件对象,可像文件对象一样操作
socket对象,输入输出对象(stdin、stdout)

点击查看代码
 from sys import stdoutf=stdoutprint(type(f))f.write('magedu.com')