用于文件目录操作的常用模块有默认文件操作,os(操作习题模块),shutil(shell工具),pathlib(目录操作),fileinput(批量文件操作)等
其中内置open()函数用于创建指定文件,如果文件存在,则表示打开文件
···默认以只读模式打开文件,如果文件不存在,则报错
常见的访问模式
r :read的缩写,默认模式,以只读的方式打开文件,不能修改文件。文件不存在,则报错,指针 在文件开头
w:write的缩写,以只写的方式打开文件,只用于写入,如果文件存在则将其覆盖,源文件有内 容会被清空,文件不存在会创建新文件
a:append的缩写,已追加写入内容方式打开文件,如果文件存在,文件指针会放在文件结尾, 文件不存在创建新文件再写入
rb:以二进制格式打开文件用于只读
wb:以二进制格式打开文件用于写入
ab:以二进制格式打开文件用于追加
r+,w+,a+: 打开文件用于读写
rb+,wb+,ab+:以二进制格式打开文件用于写入
注意: 基于w,wb,wb+模式打开的文件,原有内容会被截断清除
基于a,a+,ab+模式打开的文件,文件读写数据的光标会位于文件末尾,此时无法读取文件
基于r,r+,rb,rb+模式打开一个不存在的文件都会报错
关闭文件:文件名.close()
file。name 获取当前文件的文件名
file。closed  获取当前文件的关闭状态
file。mode  获取当前打开文件的访问模式
常用操作
file.write() : 写入文件内容,将字符串或二进制数据写入被打开的文件
file.writelines(seq) 把列表中的成员数据写入到文件中,就是多行一次性写入
file.read([n=-1])读取文件内容,读取过程中如果设置了n,则最多读取文件中的n个字符,如果         没有设置则默认为-1,则默认读取文件中的全部内容字符
file.readline([limit=-1])读取文件的一行内容,如果设置了limit,有可能返回的只是一行limit个字       符,没有设置则默认读取整行内容 
file.readlines()按行读取整个文件内容,以列表格式返回,列表的成员是文件的每一行内容
file.tell() 获取当前文件中读写数据的光标
file.seek(offset:int)设置文件读写数据的光标(指针)到指定的offset指定位置
file.flush()把缓冲区的内容写入硬盘的文件中,默认程序写入内容到文件中,并不是逐行代码逐行写入,而是再运行过程中把写入文件的数据先保存到了内存的缓冲区中
file.writable()判断当前打开文件是否可写
file.readable()判断当前文件是否可读
基于with操作文件
with语句也叫上下文管理器,使用上下文管理器,可以在读写文件的时候,只需要关注文件的代码编写,不需要在意文件是否关闭,因为在执行with语句块后,会自动执行file。close()方法关闭文件
语法:with 表达式 as 变量
读写文件的二进制数据
wb rb 模式的使用
将字符串和字节流(bytes)类型进行转换(参数写成转化的字符编码格式)
encode()编码 将字符串转化为字节流(bytes流)
decode()解码 将bytes流转化为字符串