13.2.1 文本I/O
来源:互联网 发布:91act 知乎 编辑:程序博客网 时间:2024/05/17 22:34
13.2 io--输入输出功能
本模块提供了面向不同I/O类型的处理功能,基本是三种类型:文本I/O,二进制I/O和原始I/O。面向操作这些I/O的对象封装叫做文件对象,或者文件类型对象。三种类型的操作函数对输入参数的要求是不一样的,比如文本的函数就不能输入二进制参数,二进制的函数就不能输入文本的参数,否则都会抛出异常。
13.2.1 文本I/O
文本I/O提供处理str字符串对象,要求输入的参数是字符串对象,返回的对象也是字符串对象。因此,文本模块封装了从文本转换到二进制的功能,包括对文本进行编码、解码等工作,对于使用者来说,不用关心这些处理过程,完全透明的。最简单的使用方式就是使用open()打开文件对象:
f = open("myfile.txt", "r", encoding="utf-8")
在这个函数里myfile.txt是文件名称,r是表示对文件进行读取,encoding是编码的参数,采用utf-8对二进制数据读取之后转换为字符串的解码方式。
在内存里操作的文本流也可以使用StringIO对象来表示:
f = io.StringIO("some initial text data")
13.2.2 二进制I/O
二进制I/O,也被称为buffered I/O,它处理参数和返回的对象都基于bytes类型的对象。不用对数据进行编码、解码、以及换行符之类的操作。最方便打开一个二进制I/O操作的方式就是采用b方式打开文件:
f = open("myfile.jpg", "rb")
在这里,myfile.jpg是文件的名称,rb是表示对文件进行读取,按二进制的方式读取,然后返回二进制文件对象f。
内存里采用二进制I/O方式,可以使用BytesIO对象:
f = io.BytesIO(b"some initial binary data: \x00\x01")
13.2.3 原始I/O
原始I/O方式也叫做非缓存I/O方式,提供了最低层次的二进制或文本流的读写功能。创建这种方式最简单的方法是使用二进制的模式b打开,并且把缓冲区关闭,如下:
f = open("myfile.jpg", "rb", buffering=0)
13.2.4 模块的高级接口
io.DEFAULT_BUFFER_SIZE
I/O操作时默认数据缓冲区的大小。
io.open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
这个函数是内置函数open()的别名。
exception io.BlockingIOError
与内置异常BlockingIOError一样。
exception io.UnsupportedOperation
当调用一个流对象不支持的操作时抛出的异常。
蔡军生 QQ:9073204 深圳
- 13.2.1 文本I/O
- 文本I/O--
- 二进制I/O以及与文本I/O的区别
- java 文件类File 文本I/O
- Java 文本与二进制I/O总结
- java文本I/O(一)
- java I/O(1)
- I/O模型(1)
- I/O流--1
- vim 文本编辑器的输入模式 i、a、o、 s、 I、 A、 O、 S 区别
- 黑马程序员--I/o文件文本读取方式
- java中字符串与文本I/O流
- I/O知识集--1 关于I/O的基础知识
- 重叠I/O模型(1)
- 重叠I/O模型(1)
- 文件I/O(1)
- I/O小总结1
- test #1: Integer I/O
- Mysql自学笔记一
- 正向代理和反向代理的区别
- android 向webview传值
- greenplum日常问题处理
- java 中计算时间差
- 13.2.1 文本I/O
- [C#]C# 最小化 托盘
- dialog中填充table,如何让table铺满整个dialog
- BIEE 列选择器与视图选择器
- AndroidMVP
- Leetcode Binary Tree Longest Consecutive Sequence
- 索引什么时候创建
- Javascript createDocumentFragment提搞創建DOM性能
- C++ ofstream和ifstream用法