StringIO

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

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

from io import StringIO
f = StringIO()
print(f.write('hello py1 '))  # 10
print(f.write('hello py2 '))  # 10
print(f.write('hello py3 '))  # 10
print(f.getvalue()) # hello py1 hello py2 hello py3

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

from io import StringIO
f = StringIO('Hello!\nHi!\nGoodbye!')
print(f.read())

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

from io import BytesIO
f = BytesIO()
print(f.write('中文'.encode('utf-8')))
# 请注意,写入的不是str,而是经过UTF-8编码的bytesprint(f.getvalue()) # b'\xe4\xb8\xad\xe6\x96\x87'

BytesIO

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

from io import StringIO
f = BytesIO(b'\xe4\xb8\xad\xe6\x96\x87')
f.read()
b'\xe4\xb8\xad\xe6\x96\x87'

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

python io模块相关推荐

  1. python io模块_python中的StringIO模块

    原博文 2015-10-23 15:21 − # python中的StringIO模块 标签:python StringIO --- > 此模块主要用于在内存缓冲区中读写数据.模块是用类编写的, ...

  2. Python - io 模块

    文章目录 关于 io 模块 1.文本 I/O 2.二进制(字节) I/O 3.原始 I/O 二.文本编码格式 选择性的 EncodingWarning 三.高阶模块接口 四.类的层次结构 1.I/O ...

  3. python IO模块【一】:IO类

    前言 python中的IO操作主要包括textIO.bytesIO.与rawIO,bytesIO主要操作对象是buffered raw bytes, rawIO操作对象是raw bytes, text ...

  4. Python io – BytesIO,StringIO

    Python io module allows us to manage the file-related input and output operations. The advantage of ...

  5. python的io模块

    open函数是一个工厂函数.根据传入的变量,open函数会进行文件的开启.文件对象的创建与设定,然后返回文件对象.我们来看一下指定不同变量时,open函数具体为我们返回了什么类型的文件对象呢: > ...

  6. Python的io模块详解

    Python的io模块提供了多个流式处理接口,具体的处理函数实现位于_pyio.py模块中. 在_io.py模块中,提供了唯一的模块方法open(name, mode=None, buffering= ...

  7. Python 第三方模块 科学计算 SciPy模块1 简介,常数,IO

    官方文档:https://www.scipy.org/\qquadhttps://docs.scipy.org/doc/scipy/reference/index.html 一.基本信息 1.介绍: ...

  8. python import io_详解Python IO编程

    文件读写 读文件 try: # windows下utf8 f = open('./README.md', 'r', encoding='utf8', errors='ignore') print(f. ...

  9. python高级-模块(14)

    一.python中的模块 有过C语言编程经验的朋友都知道在C语言中如果要引用sqrt函数,必须用语句#include <math.h>引入math.h这个头文件,否则是无法正常进行调用的. ...

最新文章

  1. (送)Java 架构技术揭秘:Redis+Nginx+Dubbo精选+面试题+精选视频
  2. mac 源生安装mysql_docker安装MySQL数据库
  3. Intel Realsense D435报错:RuntimeError: Acquire failed!
  4. boost::serialization相关的测试程序
  5. php文件安全实现方法,php安全下载大文件的实现代码
  6. SAP Fiori Elements 应用里的 Title 显示的内容是从哪里来的
  7. Django03: django加入APP
  8. react学习(71)--render使用
  9. [原创]VS2013 EF6连接MySql需要几步?
  10. django-session了解
  11. Implementation of the USB 3.0 controller not found!
  12. Excel删除重复数据
  13. Lumines! to exploit
  14. 高通driver模块编译方法
  15. Day13_定时器中断处理
  16. sparksql处理mysql_Spark记录-SparkSQL远程操作MySQL和ORACLE
  17. 【PMP】PMBOK 笔记 第10章 项目沟通管理
  18. 前端面试官经验总结 | 前端面试小技巧
  19. 企业网络安全的重要性
  20. 什么是路由器 路由器和路由器之间怎么连接

热门文章

  1. 10a大电流稳压芯片_IC芯片大小的完整10A DC/DC电源
  2. rtsp流媒体播放器----ffmpeg相关代码走读(一)
  3. 数据结构童话版 003新的学生
  4. 光猫通过 Telnet 修改自带 WLAN 功能 SSID 强制 ChinaNet- 问题
  5. SQLServer错误代码解释
  6. 2016年上市新SUV斯柯达kodiaq大气造型
  7. Yocto OpenCV交叉编译
  8. 集成百度ORC 识别报 Fatal signal 11 (SIGSEGV) (RenderThread) 错误(已解决)
  9. 正则改造VS Code里React类组件的自定义snippet
  10. 【仿淘宝首页】前端网页模板,大学生前端作业分享,html5+css电商网站模板,包含js动效