之前我们所说的都是读写真正的文件。其实我们也可以在内存中虚拟一个文件进行读写。Python给咱们提供的官方module有io.StringIO和io.BytesIO.

io.StringIO

String IO用于在内存在读写字符串。

StringIO可以传入一个字符初始化。例如

string = StringIO("This is Demo")

例如:

from io import StringIO

s = StringIO()

s.write("Yes\nYEs")

s.seek(0)

# 将指针拨回到开始位置,否则将会读取不到任何东西

content = s.read()

print content

StringIO创建的是一个file-like object,拥有File Object的所有方法。StringIO还有两个特殊的方法,就是getvalue()方法和close()方法。

getvalue()方法用于获取StringIO中写入的内容

close()方法关闭StringIO,释放内存。

io.BytesIO

StringIO只能处理字符串类型的数据,BytesIO可以用于处理二进制类型的数据。

BytesIO的用法与StringIO类似。

StringIO.StringIO

在搜索文档的时候,发现在StringIO下也有一个StringIO,而且两者非常类似。所有google了一下。在stackoverflow有一个回答:

回答的原文链接:http://stackoverflow.com/ques...

An in-memory stream for unicode text. It inherits TextIOWrapper.

This module implements a file-like class, StringIO, that reads and writes a string buffer (also known as memory files).

io.StringIO is a class. It handles Unicode. It reflects the preferred Python 3 library structure.

StringIO.StringIO is a class. It handles strings. It reflects the legacy Python 2 library structure.

What should be preferred?

Always move forward toward the new library organization. The io.open should be used to replace the built-in Unicode-unaware open.

Forward. Move forward.

大意就是StringIO是python2的遗产,后续会被io.StringIO取代.

建议使用io.StringIO.

io python_python学习笔记 - StringIO以及BytesIO相关推荐

  1. python学习笔记 - StringIO以及BytesIO

    之前我们所说的都是读写真正的文件.其实我们也可以在内存中虚拟一个文件进行读写.Python给咱们提供的官方module有io.StringIO和io.BytesIO. io.StringIO Stri ...

  2. Python学习:StringIO和BytesIO

    1.StringIO 很多时候数据读取不一定是文件,也可以在内存中 StringIO顾名思义就是在内存中读写str 要把str写入StringIO,我们需要先创建一个StringIO,然后像文件一样写 ...

  3. Python3学习笔记23-StringIO和BytesIO

    StringIO 很多时候数据读取不一定是文件,也可以在内存中 StringIO顾名思义就是在内存中读写str 要把str写入StringIO,我们需要先创建一个StringIO,然后像文件一样写入即 ...

  4. printdocument python_python学习笔记之wxpython打印预览

    主要学习wxPython in action 和Demo程序,做点学习笔记 wxPython 通过使用设备上下文和绘制操作来实现打印,wxPython中实现打印的一个重要的类:wx.PrintOut它 ...

  5. while用法python_Python学习笔记之While循环用法分析

    本文实例讲述了Python学习笔记之While循环用法.分享给大家供大家参考,具体如下: 前面一篇<Python学习笔记之For循环用法>详细介绍了Python for循环,这里再来讲述一 ...

  6. Java - IO流学习笔记

    1.文件和文件夹 内存中存放的数据信息在计算机关机后就会消失,如果想要长久的保存数据,就需要使用到光盘.硬盘等设备,为了便于数据的管理以及检索,引入了"文件"的概念.一篇文章,一个 ...

  7. org.apache.commons.io——FileUtils学习笔记

    FileUtils类的应用 1.写入一个文件: 2.从文件中读取: 3.创建一个文件夹,包括文件夹: 4.复制文件和文件夹: 5.删除文件和文件夹: 6.从URL地址中获取文件: 7.通过文件过滤器和 ...

  8. 十分钟学习python_Python学习笔记一:十分钟入门

    [转]为什么要自己敲呢?--学习的过程. 简介: Python是一种动态解释型的编程语言.Python可以再Windows,UNIX,MAC等多种ca 特点: 1. python使用C语言开发,但是p ...

  9. JAVA相关的IO知识学习笔记

    BIO          最传统的一种 IO 模型,即在读写数据过程中会发生阻塞现象.当用户线程发出 IO 请求之后,内核会去查看数据是否就绪,如果没有就绪就会等待数据就绪,而用户线程就会处于阻塞状态 ...

最新文章

  1. windows下编译pcl-master源码(带GPU)
  2. 清华思客 | 蓝志勇:人工智能时代公共治理创新迫在眉睫
  3. mysql57查询无响应_MySQL 单个表锁死 对查询语句无响应
  4. 2020-10-13 多智能体基本图论
  5. HDU 5527:Too Rich(DFS+贪心)***
  6. Unhandled Exxception “Unhandled exception type IOException”?
  7. 使用devenv/MSBuild在命令行编译单个project
  8. python安装第三方库win10_音频处理 windows10下python三方库librosa安装教程
  9. Azure DevOps+Docker+Asp.NET Core 实现CI/CD(一 .简介与创建自己的代理池)
  10. 程序员面试金典 - 面试题 10.11. 峰与谷(排序/不排序)
  11. python把print写入文件_Python中用print方法向文件中写入内容
  12. Python C API 使用详解(二)
  13. 奇妙的证明 —— 0! = 1(a^0=1)
  14. QQ连连看外挂--基于LAScript
  15. 你听过“费斯汀格法则”吗?多少人因为不懂而被残害!好文!
  16. SaaS行业验尸报告:他们死于资本狂欢前夜
  17. PL/SQL12.2 ——DML 触发器
  18. 老旧笔记本安装openwrt实践:
  19. web前端开发可以从事哪些工作
  20. github优秀项目分享 redis客户端

热门文章

  1. HDU5511 : Minimum Cut-Cut
  2. 实验十——一维数组的定义及引用
  3. MBProgressHUD
  4. 数学之路(3)-机器学习(3)-机器学习算法-神经网络[19]
  5. uniGUI 实操感受
  6. Android版‘音乐一点通’音乐播放器详情
  7. 数据结构之二叉树的先序、中序、后续的求法
  8. C++ primer——vector
  9. NYOJ 485 A*B Problem
  10. Golang之 ==和deepEqual