首页 > 其他 > 详细

StringIO和BytesIO

时间:2017-10-29 16:18:10      阅读:309      评论:0      收藏:0      [点我收藏+]
StringIO:
	from io import StringIO
内存中,开辟的一个文本模式的buffer,可以像文件对象一样操作它
当close方法被调用的时候,这个buffer会被释放
	
getvalue() 获取全部内容,跟文件指针没有关系

例子:
from io import StringIO

sio = StringIO()
print(sio.readable(), sio.writable(), sio.seekable())#可读可写可seek
>>>True True True
sio.write(‘test\npython‘)
>>>11
sio.seek(0)
>>>0
print(sio.readline())
>>>test
print(sio.getvalue())#无视指针输出全部内容
>>>test
   python
>>>
sio.close()

StringIO 好处:
	磁盘的操作比内存操作要慢,内存足够的情况下,一般的优化思路是少落地,减少磁盘IO的
过程,可以提高程序的运行效率


BytesIO:
	io模块中的类:
	from io import StringIO

	内存中开辟一个二进制模式的buffer,可以像文件对象一样操作它
	当close方法被调用的时候,这个buffer会被释放

例子:
from io import BytesIO

bio = BytesIO()
print(bio.readable(), bio.writable(), bio.seekable())
>>> True True True
bio.write(b"test\npython")
>>> 11
bio.seek(0)
>>>0
print(bio.readline())
>>> b‘test\n‘
print(bio.getvalue())
>>>b‘test\npython‘
bio.close()

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

from sys import stdout

f = stdout
print(type(f))
>>><class ‘_io.TextIOWrapper‘>
f.write(‘test.com‘)
>>>test.com 

  

StringIO和BytesIO

原文:http://www.cnblogs.com/hkcs/p/7750242.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!