IO模块的使用

1.StringIO的使用

# 相似文件的缓冲区
from io import StringIO
cache_file = StringIO()
print(cache_file.write('hello world')) # 11
print(cache_file.seek(0)) # 0
print(cache_file.read()) # hello world
print(cache_file.close())  # 释放缓冲区
  • StringIO常常被用来做字符串的缓存,由于StringIO的一些接口和文件操做是一致的,也就是说一样的代码,能够同时当成文件操做或者StringIO操做;
  • 要读取StringIO,能够用一个str初始化StringIO,而后像读文件同样读取;
  • 当使用read()方法读取写入的内容时,则须要先用seek()方法让指针移动到最开始的位置,不然读取不到内容(写入后指针在最末尾);
  • getvalue()方法:直接得到写入后的str;
  • close()方法:在关闭文件的缓冲区以后就不能再进行读写操做了;

2.BytesIO的使用

# 相似文件的缓冲区
from io import BytesIO
bytes_file = BytesIO()
bytes_file.write(b'hello world')
bytes_file.seek(0)
print(bytes_file.read()) # b'hello world'
bytes_file.close()
  • StringIO操做的只能是str,若是要操做二进制数据,就须要使用BytesIO;
  • BytesIO实现了在内存中读写bytes,写入的不是str,而是通过UTF-8编码的bytes;
  • 要读取BytesIO,能够用一个bytes初始化BytesIO,而后像读文件同样读取;
相关文章
相关标签/搜索