python IO模块【一】:IO类
前言
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类相关推荐
- 发那科pmc地址分配_FANUC IO模块地址分配详解
FANUC中关于IO模块的连接被称为IO LINK.IO模块按照FANUC规则与系统连接完成后,在系统中设定对应的IO分配地址,系统IO LINK完成,对应IO模块生效,可以正常输入输出信号. FAN ...
- python treading模块
python threading模块 1.Thread类 1.1 构造器传参 Thread(group=None, target=None, name=None, args=(), kwargs={} ...
- python io模块_python中的StringIO模块
原博文 2015-10-23 15:21 − # python中的StringIO模块 标签:python StringIO --- > 此模块主要用于在内存缓冲区中读写数据.模块是用类编写的, ...
- python中io中的+模式_Python的高级特性,模块和IO操作
今天我们学习Python的高级特性.模块和IO操作,通过学习这些,我们可以更快的了解Python,使用Python. 高级特性中会讲述列表生成式.生成器.和一些高级函数,学习这些方便我们快速的生成列表 ...
- Python - io 模块
文章目录 关于 io 模块 1.文本 I/O 2.二进制(字节) I/O 3.原始 I/O 二.文本编码格式 选择性的 EncodingWarning 三.高阶模块接口 四.类的层次结构 1.I/O ...
- Python的io模块详解
Python的io模块提供了多个流式处理接口,具体的处理函数实现位于_pyio.py模块中. 在_io.py模块中,提供了唯一的模块方法open(name, mode=None, buffering= ...
- python的io模块
open函数是一个工厂函数.根据传入的变量,open函数会进行文件的开启.文件对象的创建与设定,然后返回文件对象.我们来看一下指定不同变量时,open函数具体为我们返回了什么类型的文件对象呢: > ...
- Python 第三方模块 科学计算 SciPy模块1 简介,常数,IO
官方文档:https://www.scipy.org/\qquadhttps://docs.scipy.org/doc/scipy/reference/index.html 一.基本信息 1.介绍: ...
- pythonos模块_python的io模块和os模块有什么区别
os: This module provides a portable way of using operating system dependent functionality. 这个模块提供了一种 ...
最新文章
- unity2D限制位置的背景移动补偿效果
- oracle 执行计划
- Leaflet中原生方式实现测距
- python 下标 遍历列表_python中的数据结构与算法(1):列表、元组与字符串
- 玩转StyleGAN2模型:教你生成动漫人物
- set 与 map 的第一次尝试
- JavaScript自学笔记(1)---表单验证,let和const,JSON文件
- go语言打印日期_go语言基础:流程控制(4)-多重循环跳转控制
- sublime cscope使用方法
- 手机摇一摇功能音量大小跟系统音量一致
- win11错误代码0xc1900101怎么解决 windows11错误代码0xc1900101的解决方法
- django models 配置
- 5.性能之巅 洞悉系统、企业与云计算 --- 应用程序
- Mysql 日期函数 增加周天年月时分秒
- iNOC产品部--完全数计算
- AliOS-Things--EMW3060使用笔记--GPIO
- matlab 狄利克雷函数代码,狄利克雷函数
- 微信小程序学习日记7
- python抢mac微信红包群_要抢红包?Python来帮你~
- 金蝶K3开发-工业老单据序时薄增加过滤条件
热门文章
- XP计算机桌面锁定进不去,XP系统电脑进不了桌面怎么办
- java设计九宫格拼图软件哪个好用_抖音超火的朋友圈九宫格用什么软件做的? 抖音九宫格图片制作教程...
- 查看华为路由器外网ip
- spark xgboost 特征重要性分析 gain、cover、freq
- 使用Java操纵Excel表格
- 大学计算机习题汇总及答案
- Scrapy源码剖析前戏之Twisted使用
- 高德地图 java_几行代码实现高德地图的高级用法
- Allegro Cadence 视频教程+信号完整性
- 下载数据库名前加“#”方法