`
lykops
  • 浏览: 86133 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

StringIO和BytesIO

 
阅读更多
StringIO

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

StringIO顾名思义就是在内存中读写str。

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

>>> from io import StringIO
>>> f = StringIO()
>>> f.write('hello')
5
>>> f.write(' ')
1
>>> f.write('world!')
6
>>> print(f.getvalue())
hello world!

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

要读取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!

BytesIO

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

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

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

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

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

>>> from io import BytesIO
>>> f = BytesIO(b'\xe4\xb8\xad\xe6\x96\x87')
>>> f.read()
b'\xe4\xb8\xad\xe6\x96\x87'
分享到:
评论

相关推荐

    Python StringIO及BytesIO包使用方法解析

    为了更好地理解和运用这些工具,本篇文章将详细介绍`StringIO`和`BytesIO`两个类的使用方法。这两个类位于`io`模块中,它们提供了在内存中读写文本和二进制数据的功能。相比于传统的文件操作,使用`StringIO`和`...

    廖雪峰python3 完整带索引,图片 最新教程 pdf版

    StringIO和BytesIO 操作文件和目录 序列化 进程和线程 多进程 多线程 ThreadLocal 进程 vs. 线程 分布式进程 正则表达式 常用内建模块 datetime collections base64 struct hashlib hmac itertools contextlib ...

    Python 3教程(廖雪峰).rar

    StringIO 和 BytesIO 254 操作文件和目录 257 序列化 261 进程和线程 267 多进程 269 多线程 278 ThreadLocal 285 进程 vs. 线程 289 分布式进程 292 正则表达式 298 常用内建模块 304 datetime 305 ...

    Python StringIO如何在内存中读写str

    综上所述,Python的StringIO和BytesIO提供了在内存中进行数据读写操作的能力,这对于提高程序的效率和实现临时数据处理非常有用。开发者可以利用这些模块完成在文件操作中的一些任务,尤其是在处理字符串和字节数据...

    廖雪峰的python3

    IO编程部分涉及文件读写、StringIO和BytesIO、操作文件和目录、序列化。进程和线程部分介绍了多进程、多线程、ThreadLocal、进程与线程的比较和分布式进程。网络编程则包括TCP/IP简介、TCP编程、UDP编程、电子邮件...

    廖雪峰老师的python3教程

    IO编程部分包括了文件读写、StringIO和BytesIO、操作文件和目录以及序列化的内容。进程和线程部分则让学习者了解了Python中多进程和多线程编程的基础知识,以及如何使用threading和multiprocessing模块。 网络编程...

    廖雪峰的Python 3教程——排版完美

    在IO编程中,特别指出了文件读写、StringIO和BytesIO、操作文件和目录、序列化等知识点。此外,还介绍了进程和线程的概念,以及如何进行多进程和多线程编程。 正则表达式作为文本处理的重要工具,在教程中也被单独...

    python入门学习

    输入输出(IO)编程是任何编程语言的基础组成部分,Python基础教程提供了文件读写、StringIO和BytesIO的使用、操作文件和目录、序列化的相关知识。进程和线程是进行并发编程的重要概念,Python教程对多进程、多线程...

    廖雪峰老师的python3.pdf

    13. IO编程:涵盖了文件读写、StringIO和BytesIO、操作文件和目录以及序列化。 14. 进程和线程:讲解了多进程和多线程编程模型,以及它们的管理和调度。 15. 正则表达式和常用内建模块:包括datetime、collections...

    廖雪峰python教程打印版(完整版)(.pdf)

    IO编程涉及到数据的输入和输出操作,包括文件读写、StringIO和BytesIO、操作文件和目录、序列化等。Python中的文件操作非常简单,可以轻松地读写文本或二进制文件。StringIO和BytesIO则允许你在内存中操作字符串或...

    Pyhon3-廖雪峰PDF

    IO编程是计算机程序设计中的一个重要组成部分,它涵盖了文件读写、StringIO和BytesIO的使用以及操作文件和目录的基本方法。除此之外,教程还介绍了进程和线程的编程,包括多进程、多线程、ThreadLocal的使用以及进程...

    廖雪峰python3教程

    10. IO编程:讲解了文件读写、StringIO和BytesIO操作以及文件和目录的操作。 11. 进程和线程:对多进程、多线程以及它们之间的区别和联系进行了讨论,并介绍了线程本地存储(ThreadLocal)和分布式进程的概念。 12...

    廖雪峰 最新python3教程,比官网更详细,零基础

    同时,也包括了IO编程方面的知识,如文件读写、StringIO和BytesIO对象的使用,以及操作文件和目录的方法。 Python提供了强大的标准库,支持多种编程范式和工具。教程中还介绍了多线程和多进程编程的基础知识,...

    python3基础教程

    学习如何读写文件、使用StringIO和BytesIO等内存文件对象以及进行网络编程都是必要的。 9. 进程和线程:了解Python中的进程和线程模型有助于编写可以充分利用多核处理器能力的程序。这包括了解多进程和多线程编程,...

    Python3-廖雪峰 高清完整PDF版

    - IO编程:涵盖文件读写、StringIO和BytesIO、操作文件和目录、序列化等。 - 进程和线程:包括多进程、多线程、ThreadLocal、进程与线程的比较、分布式进程。 - 正则表达式:用于字符串匹配的规则表达式。 - 常用内...

    Python3 基础教程

    14. 文件操作:包括文件的打开、读写、关闭以及使用StringIO和BytesIO进行内存文件操作。 15. 进程和线程:Python支持多进程和多线程编程,提供线程局部存储、进程间通信等机制。 16. 正则表达式:Python内置了对...

    Python3中类、模块、错误与异常、文件的简易教程

    新增StringIO和BytesIO; 新增datetime的使用; 新增urllib的使用; 新增枚举类型的使用; 新增virtualenv的使用; 新增asyncio编程; 新增aiohttp编程; 实战的Web App已完全基于asyncio重写。 本文将详细...

Global site tag (gtag.js) - Google Analytics