文件持久化
- 计算机储存数据:
- 默认情况下,程序中的数据是保存在运行内存中的,当程序运行结束后,内存中保存的数据会自动销毁。如果希望数据持久化,就应该把数据保存在硬盘(磁盘)中,在硬盘(磁盘)中保存数据的最小单位是文件。
- 数据持久化:将数据以文件的格式保存到硬盘中
绝对路径和相对路径
- 绝对路径:文件在计算机里面的全路径。拖进终端可看
- 相对路径:
- .代表当前目录(当前文件所在的文件夹),…代表当前目录的上次目录
- 如果要使用相对路径,被打开的文件必须放在工程中
- 如果是./开头,可以省略
文件操作
- 基本流程:打开文件->操作文件->关闭文件
- 打开文件:
- 语法:open(file,mode=‘r’,*,encoding=None) - 打开,并返回一个文件对象
- 参数:
- file:文件路径,注意不要忘记后缀名,记得加个r‘’
- mode:
- 以下三选一:
- r : 只读(默认)
- w : 只写,清空原文件再写入 ; 找不到文件会创建文件
- a : 只写,追加; 找不到文件会创建文件
- 以下二选一:
- t : 字符串(默认)
- b : 二进制(bytes)
- 以下三选一:
- encoding: 只有以t的方式打开的时候,才会使用encoding
- 两种文件保存/解码格式,两者在中文保存时格式不一样。所以试就完了,一个不行用另一种
- encoding = ‘utf-8’
- encoding = ‘gbk’
- 操作文件:
- 存在光标,不要忘记了
- 文件读操作:
- 文件对象.read() - 返回文件所有内容
- 文件对象.readline() - 获取一行内容(只针对文本文件有效)
- 文件对象.readlines() - 返回文件所有内容,每行为一个元素,组成一个列表返回
- 文件写操作:
- 文件对象.write(数据) - 数据只能是文本数据或二进制
- 文件对象.writes(列表) - 写进一行
- 关闭文件:文件对象.close() – 为了安全
- 打开文件:
- 文件操作实战 - 文件数据的递归处理
-
什么时候需要文件操作:本次操作的数据,下次还会用
-
步骤:
- 确定,需要持久化的数据
- 创建,文件保存需要持久化数据的文件
- 初值确定,文件初始内容
- 读,在程序中需要这个数据的时候,从文件中获取这个数据
- 写入,在程序中修改后,必须要将最新的数据写入到文件中
-
案例:
-