链接:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431918785710e86a1a120ce04925bae155012c7fc71e000
StringIO和BytesIO 提供了一种在内存中对字符串和byte类型数据的操作方法,使得和读写文件具有一致的接口。StringIO只能操作str对象,而BytesIO操作的对象是bytes
写入:
1.导入对应模块
2.创建相应的对象
3.调用对象的write()方法
注意:BytesIO写入的不是str而是经过UTF-8编码的bytes
读取:
注意:不能通过上面创建的对象直接读取,而是通过上面对象调用getvalue()方法返回的数据来初始化一个新的StringIO或者BytesIO对象,然后在读取,剩下的读取步骤和文件的读取一样
#StringIO的写入>>> from io import StringIO#导入模块>>> f = StringIO()#创建对象>>> f.write('hello')#写5>>> f.write(' ')1>>> f.write('world!')6>>> print(f.getvalue())hello world!#读取#直接调用会为空>>> f.read()' ' >>> f=StringIO(f.getvalue())>>> f.read()'hello world'#BytesIO>>> from io import BytesIO>>> f=BytesIO()>>> f.write('中文'.encode('utf-8'))6>>> print(f.getvalue())b'\xe4\xb8\xad\xe6\x96\x87'>>> f.read()b''>>> f=BytesIO(f.getvalue())>>> f.read()b'\xe4\xb8\xad\xe6\x96\x87'