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

 更新时间:2022年05月28日 09:04:18   作者:springsnow  
这篇文章介绍了Python使用StringIO和BytesIO读写内存数据的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

流读写

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

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的方法,使得和读写文件具有一致的接口。

到此这篇关于Python使用StringIO和BytesIO读写内存数据的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Django DRF认证组件流程实现原理详解

    Django DRF认证组件流程实现原理详解

    这篇文章主要介绍了Django DRF认证组件流程实现原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • 使用Matplotlib绘制不同颜色的带箭头的线实例

    使用Matplotlib绘制不同颜色的带箭头的线实例

    这篇文章主要介绍了使用Matplotlib绘制不同颜色的带箭头的线实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • 详解Selenium如何实现获取cookies并保存

    详解Selenium如何实现获取cookies并保存

    这篇文章主要为大家详细介绍了Selenium如何实现获取cookies保存起来用于下次访问,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2023-05-05
  • python 利用for循环 保存多个图像或者文件的实例

    python 利用for循环 保存多个图像或者文件的实例

    今天小编就为大家分享一篇python 利用for循环 保存多个图像或者文件的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-11-11
  • python requests.post请求404问题及解决方法

    python requests.post请求404问题及解决方法

    这篇文章主要介绍了python requests.post请求404问题,这里需要根据自己实际情况来分析当前接口接收数据时使用的是什么格式,但目前一般的网站都开始采用application/jsond的数据格式,本文通过图文并茂的形式给大家介绍的非常详细,需要的朋友可以参考下
    2022-09-09
  • python miniWeb框架搭建过程详解

    python miniWeb框架搭建过程详解

    这篇文章主要介绍了python miniWeb框架搭建,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-10-10
  • Python如何实现Paramiko的二次封装

    Python如何实现Paramiko的二次封装

    这篇文章主要介绍了Python如何实现Paramiko的二次封装,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2021-01-01
  • postman发送文件请求并以python服务接收方式

    postman发送文件请求并以python服务接收方式

    这篇文章主要介绍了postman发送文件请求并以python服务接收方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07
  • 最新整理Python中的type和object的示例详解

    最新整理Python中的type和object的示例详解

    这篇文章主要介绍了最新整理Python中的type和object的示例详解,最主要,是理解type和object的区别与联系,本文结合示例代码给大家讲解的非常详细,需要的朋友可以参考下
    2022-12-12
  • python中round函数保留两位小数的方法

    python中round函数保留两位小数的方法

    在本篇内容里小编给各位分享的是一篇关于python中round函数保留两位小数的方法及相关知识点,有兴趣的朋友们可以学习下。
    2020-12-12

最新评论