0x00:嘿嘿

除了将数据写入到一个文件以外,我们还可以使用代码,将数据暂时写入到内存里,可以理解为数据缓冲区。Python中提供了StringIO和BytesIO这两个类将字符串数据和二进制数据写入到内存里。

0x01:StringIO

StringIO可以将字符串写入到内存中,像操作文件一下操作字符串。

  1. from io import StringIO
  2. # 创建一个StringIO对象
  3. f = StringIO()
  4. # 可以像操作文件一下,将字符串写入到内存中
  5. f.write('hello\r\n')
  6. f.write('good')
  7. # 使用文件的 readline和readlines方法,无法读取到数据
  8. # print(f.readline())
  9. # print(f.readlines())
  10. # 需要调用getvalue()方法才能获取到写入到内存中的数据
  11. print(f.getvalue())
  12. f.close()

0x02:BytesIO

如果想要以二进制的形式写入数据,可以使用BytesIO类,它的用法和StringIO相似,只不过在调用write方法写入时,需要传入二进制数据。

from io import BytesIO

f = BytesIO()
f.write('你好\r\n'.encode('utf-8'))
f.write('中国'.encode('utf-8'))

print(f.getvalue())
f.close()