Python使用StringIO和BytesIO读写内存数据

作者:springsnow 时间:2022-06-15 02:45:45 

流读写

很多时候,数据读写不一定是文件,也可以在内存中读写。

1、StringIO:在内存中读写str。

要把str写入StringIO,我们需要先创建一个StringIO,然后,像文件一样写入即可:

getvalue()方法用于获得写入后的str。

from io import StringIO
f = StringIO()
f.write('hello')
f.write(' ')
f.write('world!')
print(f.getvalue()) #hello world!

要读取StringIO,可以用一个str初始化StringIO,然后,像读文件一样读取:

from io import StringIO
f = StringIO('Hello!\nHi!\nGoodbye!')
while True:
       s = f.readline()
       if s == '':
           break
       print(s.strip())
# Hello!
# Hi!
# Goodbye!

2、BytesIO:在内存中读写bytes

StringIO操作的只能是str,如果要操作二进制数据,就需要使用BytesIO。

BytesIO实现了在内存中读写bytes,我们创建一个BytesIO,然后写入一些bytes:

请注意,写入的不是str,而是经过UTF-8编码的bytes。

from io import BytesIO
f = BytesIO()
f.write('中文'.encode('utf-8'))
print(f.getvalue())  # b'\xe4\xb8\xad\xe6\x96\x87'

和StringIO类似,可以用一个bytes初始化BytesIO,然后,像读文件一样读取:

from io import BytesIO
f = BytesIO(b'\xe4\xb8\xad\xe6\x96\x87')
f.read().decode('utf-8')  # '中文'

3、小结

StringIO和BytesIO是在内存中操作str和bytes的方法,使得和读写文件具有一致的接口。

来源:https://www.cnblogs.com/springsnow/p/12611566.html

标签:Python,StringIO,BytesIO,读写,内存,数据
0
投稿

猜你喜欢

  • mysql添加索引方法详解(Navicat可视化加索引与sql语句加索引)

    2024-01-24 22:32:37
  • 淘宝首页代码调整

    2011-04-22 12:44:00
  • C#命名空间System.ComponentModel属性方法汇总

    2024-06-05 09:24:02
  • Python用requests-html爬取网页的实现

    2023-03-21 13:24:14
  • JavaScript事件委托技术实例分析

    2023-07-01 01:18:23
  • Vuex简单入门

    2024-05-02 16:58:26
  • Python 格式化输出_String Formatting_控制小数点位数的实例详解

    2023-11-29 12:09:14
  • requests在python中发送请求的实例讲解

    2022-06-26 09:04:07
  • MySQL基础教程第一篇 mysql5.7.18安装和连接教程

    2024-01-15 18:55:19
  • Python 的描述符 descriptor详解

    2021-03-04 21:14:17
  • 教你用Python读取CSV文件的5种方式

    2022-12-11 15:32:51
  • Python配置文件解析模块ConfigParser使用实例

    2023-10-19 09:10:19
  • 用python爬取租房网站信息的代码

    2022-04-30 07:03:38
  • python感知机实现代码

    2022-03-12 14:59:50
  • Python分析微信好友性别比例和省份城市分布比例的方法示例【基于itchat模块】

    2022-01-04 08:14:09
  • 对Python获取屏幕截图的4种方法详解

    2023-11-19 09:45:41
  • asp.net+FCKeditor上传图片显示叉叉图片无法显示的问题的解决方法

    2022-05-19 17:08:22
  • mysql性能的检查和调优方法

    2009-05-17 09:21:00
  • 通过定位控制信息列表下往上的增加

    2008-06-30 14:27:00
  • IPv6设置后如何解决MySQL无法连接localhost的问题

    2024-01-20 00:50:38
  • asp之家 网络编程 m.aspxhome.com