文件操作
文件操作介绍
在实际操作中,通常需要将数据写入到本地文件或者从本地文件中读取数据等操作,那么作为Python爱好者的我们,必须掌握用Python语言去对本地文件进行操作。
本地文件操作步骤
• 找到文件所在位置
• 打开文件
• 操作文件
• 关闭文件
打开文件 open()函数
open()函数语法
open(file, mode='r',encoding=None) --> 打开文件
完整的语法格式为:
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
参数说明:
file: 必需,文件路径(相对或者绝对路径)。
mode: 可选,文件打开模式
buffering: 设置缓冲
encoding: 一般使用utf-8
errors: 报错级别
newline: 区分换行符
closefd: 传入的file参数类型
opener: 设置自定义开启器,开启器的返回值必须是一个打开的文件描述符。
只读模式 r
• f.readable() --> 判断是否可读,返回值为布尔
• f.read(n) --> 读取全部,在python3中n为字符数
• f.readline() --> 逐行读取,包括\n
• f.readlines() --> 读取所有,返回值为列表,包括\n
• f.tell() --> 文件指针所处文件位置
flush() 方法是用来刷新缓冲区的,即将缓冲区中的数据立刻写入文件,同时清空缓冲区,不需要是被动的等待输出缓冲区写入。
一般情况下,文件关闭后会自动刷新缓冲区,但有时你需要在关闭前刷新它,这时就可以使用 flush() 方法。
seek() 方法用于移动文件读取指针到指定位置。
语法:fileObject.seek(offset[, whence])
参数
offset -- 开始的偏移量,也就是代表需要移动偏移的字节数
whence:可选,默认值为 0。给offset参数一个定义,表示要从哪个位置开始偏移;0代表从文件开头开始算起,1代表从当前位置开始算起,2代表从文件末尾算起。
返回值:如果操作成功,则返回新的文件位置,如果操作失败,则函数返回 -1。
注意
• r模式,当文件不存在时则报错
• 读取不可逆
• w模式,当文件不存在时创建文件
• 再次写入为覆盖
• a模式,当文件不存在时创建文件
• 再次写入为追加
二进制文件写入
• 读取文本文件时,size是以字符为单位。读取二进制文件时,size是以字节为单位
• 我们用rb来读取二进制文件,用wb来写入二进制文件
JSON
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
json格式:’{“key”:“value”}’
关闭文件 close()函数
要注意的是,当文件打开之后,必须通过f.close()语句来关闭文件,释放资源。
with open() --> 上下文管理器
with关键字用于Python的上下文管理器机制。为了防止诸如open这一类文件打开方法在操作过程出现异常或错误,或者最后忘了执行close方法,文件非正常关闭等可能导致文件泄露、破坏的问题 。Python提供了with这个上下文管理器机制,保证文件会被正常关闭。在它的管理下,不需要再写close语句。其余操作都同open()一致。