1、io流的定义
定义:io流主要是指计算机输入和输出的操作
2、io流的操作
io流主要是通过open全局函数进行操作
2.1、open全局函数的用法
其中参数含义为
file:文件路径(必选参数)
mode:文件的打开方式 (可选参数),
其中常用的参数有:t(文本模式),r(只读模式),w(打开一个文件写入,若文件不存在创建并写入),x(新建一个文件并写入,若文件已存在会报错),a(打开一个文件并追加写入),b(二进制模式),+(打开一个文件进行更新,可读可写)等。未补充完全的可通过python终端import io导入io流模块,并dir(io)查看方法,help(open)查看open剩余mode参数
encoding:字符编码集(一般使用utf-8)
errors:报错级别
newline:区分换行符
closefd:传入的file参数类型
opener:设置自定义开启器,开启器的返回值必须是一个打开的文件描述符。
2.2、文件操作
在对文件进行一系列的操作后一定要及时的对文件进行关流的动作,以保证对文件的操作得到反映
file.close()关闭文件,关闭文件后不能再进行读写操作
file.flush()刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件, 而不是被动的等待输出缓冲区写入。
file.read(size)在操作一些大文件是不建议一次性读取,而是从文件读取指定的字节数,如果未给定或为负则读取所有。
3、io流的分类
io流的分类根据流动的方向分为输入流与输出流,输入流与输出流的判别依据是根据相对与保存位置进行的一系列操作而判断流是流入与流出。
io流还根据数据类型分为字符流与字节流,字节流主要是用于储存图片、视频等。
4、对象序列化
将对象序列化为字节数据采用pickle
用法参考import pickle模块,dir(pickle)。其中dumps是将对象序列化为字节数据,loads将字节数据反序列化为字节数据。另外,dump是将对象序列化并保存进文件,load是将文件中字节数据反序列化为对象。
![](https://img-blog.csdnimg.cn/affbce2b76884e428a95a860ecd9f827.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAdmlzdWhx,size_20,color_FFFFFF,t_70,g_se,x_16)
![](https://img-blog.csdnimg.cn/fc3c10fc503a478287b9bf17b3169623.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAdmlzdWhx,size_20,color_FFFFFF,t_70,g_se,x_16)
将对象序列化为字符数据采用json
用法参考import json模块,dir(json)。其中dumps是将对象序列化为字符数据,loads将字符数据反序列化为字符数据。dump是将对象序列化为字符数据并存入文件中,load将文件中的字符数据反序列化为对象。