1.StringIO和BytesIO
PS: 这四个例子,我自己试着基本上都报错,除了第4个,没去纠结啥原因,后面再细看
(1)StringIO:在内存中读写str
1)把str写入StringIO
# 先创建一个StringIO,然后像文件一样写入即可from io import StringIOf = StringIO()f.write('Hello')f.write(' ')f.write('world')print f.getvalue() # 获得写入后的str
2)读取StringIO
# 用一个str初始化StringIO,然后像读文件一样读取from io import StringIOf = StringIO('Hello!\nHi!\nGoodbye!')while True: s = f.readline() if s == '': break print(s.strip())
(2)BytesIO:操作二进制数据,在内存中读写bytes
1)写入bytes
# 先创建一个BytesIO,然后写入一些bytesfrom io import BytesIOf = BytesIO()f.write('中文'.encode('utf-8')) # 写入的是经过UTF-8编码的bytesprint f.getvalue()
2)读取bytes
# 用一个bytes初始化BytesIO,然后像读文件一样读取from io import BytesIOf = BytesIO(b'\xe4\xb8\xad\xe6\x96\x87')print f.read()