Python StringIO 和 BytesIO
1、StringIO
io
模块中的类 from io import StringIO
- 内存中,开辟的一个文本模式的
buffer
,可以像文件对象一样操作它,类文件对象
- 当
close
方法被调用的时候,这个 buffer
会被释放
- 既然是内存中的操作,类文件对象没有落地磁盘操作;如果想要落地到磁盘,可以使用
getvalue()
方法获取到 buffer
内容后,使用文件对象落地磁盘
- 一般来说,磁盘的操作比内存的操作要慢很多,内存足够的情况下,一般的优化思路是少落地,减少磁盘
IO
的过程,可以大大提高程序的运行效率
from io import StringIO
sio = StringIO()
print(1, sio.readable(), sio.writable(), sio.seekable())
sio.write('ABC\n123\nabc')
sio.seek(0)
print(2, sio.readlines())
print(3, sio.readline())
print(4, sio.getvalue())
sio.close()
1 True True True
2 ['ABC\n', '123\n', 'abc']
3
4 ABC
123
abc
2、BytesIO