前言

python中的IO操作主要包括textIO、bytesIO、与rawIO,bytesIO主要操作对象是buffered raw bytes, rawIO操作对象是raw bytes, textIO是将bufferd raw bytes转换成文本字符串流。三种类型中文本与字节是highlevel,而rawIO是支持textIO与bytesIO的底层,一般不会直接使用。

整个模块中抽象基类IOBase是最基础地,IOBase定义了对流(stream)的基本操作,RawIOBase是IOBase的子类,用于处理raw bytes流,并在IOBase基础上拓展了一些功能。FileIO是RawIOBase的子类,提供对系统的文件处理。

模块中两个重要的抽象基类是BufferedIOBase与TextIOBase,BufferedIOBase提供了对 buffered raw byets的处理, BufferedWriter, BufferedReader, BufferedRWPair, BufferedRandom是其子类,实现缓存的raw bytes的写、读、读与写、控制文件脚柄位置的功能。

TextIOBase将缓存的bytes编解码为字符串流,常见的文件对象类TextIOWrapper就是TextIOBase的子类,处理缓存的字符串流。下表汇总了io模块中各类的继承关系。

ABC Inherits Stub Methods Mixin Methods and Properties
IOBase fileno, seek, and truncate close, closed, __enter__, __exit__, flush, isatty, __iter__, __next__, readable, readline, readlines, seekable, tell, writable, and writelines
RawIOBase IOBase readinto and write Inherited IOBase methods, read, and readall
FileIO RawIOBase - mode, name
BufferedIOBase IOBase detach, read, read1, and write Inherited IOBase methods, readinto, and readinto1
TextIOBase IOBase detach, read, readline, and write Inherited IOBase methods, encoding, errors, and newlines

最后模块中定义的open函数就是内置的open函数,一般都是通过open函数实现对缓存的字符串流、缓存的字节流的读写操作的。

IOBase

签名 描述
flush() 将缓存的数据写入磁盘
tell() 显示文件句柄的当前位置

TextIOWrapper

open函数以文本模式打开时,就会返回TextIOWrapper实例。常用方法如下:

签名 描述
read(size=-1) 默认读取所有文本数据
readline(size=-1) 默认读取一行文本数据
readlines(hint=-1) 默认返回一个列表,列表中的每个元素是文本文本对象的一行;也可以使用for循环代替,for循环每次取文件对象的一行。
write(s) 将字符串s写入文件对象,并返回字符串s的长度
writelines(lines) 将列表写入文件对象,注意写入文件对象操作, 默认是不会加换行符的,需要手动加入换行符

BufferedReader

签名 描述
read([size]) 默认读取所有的字节数据。

BufferedWriter

签名 描述
write(b) 将字节字符串写入文件对象,并返回字节字符串的数量。

参考资料

1. io模块官网文档

python IO模块【一】:IO类相关推荐

  1. 发那科pmc地址分配_FANUC IO模块地址分配详解

    FANUC中关于IO模块的连接被称为IO LINK.IO模块按照FANUC规则与系统连接完成后,在系统中设定对应的IO分配地址,系统IO LINK完成,对应IO模块生效,可以正常输入输出信号. FAN ...

  2. python treading模块

    python threading模块 1.Thread类 1.1 构造器传参 Thread(group=None, target=None, name=None, args=(), kwargs={} ...

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

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

  4. python中io中的+模式_Python的高级特性,模块和IO操作

    今天我们学习Python的高级特性.模块和IO操作,通过学习这些,我们可以更快的了解Python,使用Python. 高级特性中会讲述列表生成式.生成器.和一些高级函数,学习这些方便我们快速的生成列表 ...

  5. Python - io 模块

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

  6. Python的io模块详解

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

  7. python的io模块

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

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

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

  9. pythonos模块_python的io模块和os模块有什么区别

    os: This module provides a portable way of using operating system dependent functionality. 这个模块提供了一种 ...

最新文章

  1. unity2D限制位置的背景移动补偿效果
  2. oracle 执行计划
  3. Leaflet中原生方式实现测距
  4. python 下标 遍历列表_python中的数据结构与算法(1):列表、元组与字符串
  5. 玩转StyleGAN2模型:教你生成动漫人物
  6. set 与 map 的第一次尝试
  7. JavaScript自学笔记(1)---表单验证,let和const,JSON文件
  8. go语言打印日期_go语言基础:流程控制(4)-多重循环跳转控制
  9. sublime cscope使用方法
  10. 手机摇一摇功能音量大小跟系统音量一致
  11. win11错误代码0xc1900101怎么解决 windows11错误代码0xc1900101的解决方法
  12. django models 配置
  13. 5.性能之巅 洞悉系统、企业与云计算 --- 应用程序
  14. Mysql 日期函数 增加周天年月时分秒
  15. iNOC产品部--完全数计算
  16. AliOS-Things--EMW3060使用笔记--GPIO
  17. matlab 狄利克雷函数代码,狄利克雷函数
  18. 微信小程序学习日记7
  19. python抢mac微信红包群_要抢红包?Python来帮你~
  20. 金蝶K3开发-工业老单据序时薄增加过滤条件

热门文章

  1. XP计算机桌面锁定进不去,XP系统电脑进不了桌面怎么办
  2. java设计九宫格拼图软件哪个好用_抖音超火的朋友圈九宫格用什么软件做的? 抖音九宫格图片制作教程...
  3. 查看华为路由器外网ip
  4. spark xgboost 特征重要性分析 gain、cover、freq
  5. 使用Java操纵Excel表格
  6. 大学计算机习题汇总及答案
  7. Scrapy源码剖析前戏之Twisted使用
  8. 高德地图 java_几行代码实现高德地图的高级用法
  9. Allegro Cadence 视频教程+信号完整性
  10. 下载数据库名前加“#”方法