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读写内存数据的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • python自动化测试实例解析

    python自动化测试实例解析

    这篇文章主要介绍了python自动化测试实例,并对实例中的注意点进行了简单的分析,需要的朋友可以参考下
    2014-09-09
  • 在Python中操作文件之read()方法的使用教程

    在Python中操作文件之read()方法的使用教程

    这篇文章主要介绍了在Python中操作文件之read()方法的使用教程,是Python入门学习中的基础知识,需要的朋友可以参考下
    2015-05-05
  • python脚本实现mp4中的音频提取并保存在原目录

    python脚本实现mp4中的音频提取并保存在原目录

    这篇文章主要介绍了python脚本实现mp4中的音频提取并保存在原目录,本文给大家通过实例代码介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02
  • Windows自动执行python脚本操作步骤

    Windows自动执行python脚本操作步骤

    我们想在Windows中运行一个Python脚本,我们可以通过CMD,首先进入python文件所在的目录,之后运行。但是这样很麻烦,跟着本文操作就可以解决啦
    2021-09-09
  • 利用Python为女神制作一个专属网站

    利用Python为女神制作一个专属网站

    520不知道送什么礼物?快跟随小编一起学习一下如何利用Python语言制作一个专属的网站送给女神吧!文中的示例代码讲解详细,需要的可以参考一下
    2022-05-05
  • python sleep和wait对比总结

    python sleep和wait对比总结

    在本篇文章里小编给大家整理的是一篇关于python sleep和wait对比总结内容,对此有兴趣的朋友们可以学习下。
    2021-02-02
  • Python处理PDF与CDF实例

    Python处理PDF与CDF实例

    今天小编就为大家分享一篇Python处理PDF与CDF实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • python使用gdal对shp读取,新建和更新的实例

    python使用gdal对shp读取,新建和更新的实例

    这篇文章主要介绍了python使用gdal对shp读取,新建和更新的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • Python进阶篇之多线程爬取网页

    Python进阶篇之多线程爬取网页

    这篇文章主要为大家介绍了Python进阶中利用多线程来爬取网页的示例实现及解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2021-10-10
  • 详细介绍Python进度条tqdm的使用

    详细介绍Python进度条tqdm的使用

    这篇文章主要介绍了详细介绍Python进度条tqdm的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07

最新评论