链接: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'xe4xb8xadxe6x96x87' >>> f.read() b'' >>> f=BytesIO(f.getvalue()) >>> f.read() b'xe4xb8xadxe6x96x87'