Python入门课程NO68课 StringIO与BytesIO
我们通过open方法来打开硬盘上的文件,并获得一个文件流对象,然后通过文件流对象对文件进行读写操作。计算机中的存储设备按其访问速度和容量大小,被组织成了下图所示的金字塔形状的层次结构:
我们读写的硬盘文件,存储在外存储器中,从图可看出在硬盘中进行数据读写,远慢于在内存中进行数据读写。在本节的内容中,要介绍的是StringIO与BytesIO,通过这两个模块可以直接在内存中进行数据读写。
StringIO:通过StringIO可以获取一个基于内存的流对象。StringIO就是在内存中对字符串进行读写操作。构造StringIO的方法:StringIO(initial_value='', newline='\n')
参数initial_value用来传递一个初始值,默认为空字符串。newline用来定义换行符,默认为'\n'。通过StringIO获取的内存流对象,与通过open方法获取的文件流对象,都有相同的接口。通过文件流对象的read, write,seek等方法对文件进行读写操作,同样也可以通过内存流对象的read,write,seek等方法来进行数据的读写操作。此外,StringIO对象还提供了一个getvalue方法,用来读取缓冲区中的全部数据。
BytesIO:BytesIO类似于StringIO,区别在于BytesIO用来在内存中对bytes类型进行读写。 执行字符串类型的encode方法,可以转换为bytes类型。执行bytes类型的decode方法可以转换为字符串类型。
BytesIO([initial_bytes]):[]表示里面的参数为可选参数,参数initial_bytes表示初始化的bytes类型的数据。
在对BytesIO对象执行getbuffer方法时,会返回一个可读写的视图对象。只要视图对象存在,就不能对缓冲区的大小进行调整和关闭。如需对缓冲区的大小进行调整或关闭,可以通过del来删除该视图对象。
- 上一篇
Python入门课程NO67课 文件的读写高级操作
文件的读写缓冲区:文件的读写缓冲区对应的是内存中的一块缓冲区:在对文件执行写操作时,会先将数据写到这个缓冲区,缓冲区写满以后再刷新到磁盘。在对文件执行读操作时,会先将文件的一部分数据预读到这块内存缓冲区,然后再从这块缓冲区里进行读取。在内存中进行读写远快于
- 下一篇
Python入门课程NO69课 如何使用json
json的全称为JavaScript Object Notation,是javascript的对象标记语言,用于将javascript对象序列化为JSON格式的字符串。与Python一样,也是一种解释型的脚本语言。json数据格式:json这种数据格式类似于Python中的列表类型和字典类型:由符号[]括起来的数据集合,或由花括号