day15数据持久化
背景:程序中数据默认保存在运行内存中的,保存在运算内存中的数据会被销毁;如果希望程序中的数据在程序结束后不销毁必须将数据通过文件的形式保存在磁盘中
1.数据持久化
1)数据持久化又叫数据本地化,就是将程序中的数据存储文件中的过程
2)常见的数据持久化工具:数据库db、sqlite、json文件、plist文件、csv文件、excel文件等
'''
第一步:确定需要持久化的数据
第二步:创建文件并且确定文件初始内容
第三步:在程序中需要这个数据的时候从文件中读这个数据
第四步:当这个数据发生改变以后需要将最新的数据写入文件中
'''
2.文件操作
操作的是文件内容
操作基本流程:打开 - > 操作文件(读、写) - > 关闭文件
#已知一个文件路径./files/test2.txt
f = open('./files/test2.txt')#打开文件
f.close()#关闭文件
2.1打开文件
'''
open(file,mode = 'r',*,encoding=None) - 以指定的方式打开文件
1)file - 需要打开的文件的路径(可以是绝对路径,也可以相对路径)
注意:相对路径如果是'./'开头,'./'可以省略
2)mode - 文件打开方式,由两组值决定打开文件后能干什么,同时决定操作文件的时候数据的类型是什么类型
第一组(决定能干什么):r、w、a
r - 只读,如果文件不存在会报错
w - 只写,会清空原文件内容,如果文件不存在会自动创建文件
a - 只写,不会清空原文件内容
+ - 读写,使用方法:r+、a+、w+
第二组(决定数据类型):t、 b
t - 字符串
b - 字节(二进制类型)
打开文本文件可以用t也可以用b;二进制文件只能用b打开。
使用的时候必须在每一组值中选一个,如果第二组值没选,相当于选的't'
例如:’rt‘、’r‘、
3)encoding - 文件编码方式(文本文件文字存储的时候采用的字符集)
只有在一t方式打开文件的时候才需要设置encoding
一般赋值为‘utf-8’-> 数字、字母使用 1 字节
中文采用3个字节;表情符号采用4个字节
‘gbk’ - > 中文采用4个字节
'''
2.2操作文件
# 2.2操作文件
'''
1)读操作:
文件对象.read() - 从读写位置开始到文件结束(获取整个文件内容),返回值就是文件内容
文件对象.readline() - 从读写位置开始读到一行结束
2)写操作
对象.write(数据) - 将指定的数据写入指定文件
'''
2.3关闭文件
文件操作完成要关闭文件
#文件对象.close
# 防止忘记关闭文件的方法1:
result = open('files/test2.txt',encoding='utf-8').read()
print(result)
# 防止忘记关闭文件的方法2:
with open('files/test2.txt',encoding='utf-8') as f:
result = f.read()
print(result)
## f.seek(0) - 将读写位置移动到文件开头