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