硬盘保存数据的最小单位是文件
默认情况下,程序中的数据是保存在运行内存中的,当程序运行结束后,在运行内存保存的数据会自动销毁
文件操作的流程
打开文件—文件读写操作-- 关闭文件
1)打开
open(file,mode=‘r’,*,enconding=None) --以指定的方式打开指定文件,返回一个文件对象
参数1:file - 需要打开的文件路径(文件路径:绝对路径,相对路径)
绝对路径:文件在计算机中的全路径(windows从盘开始写的路径)
相对路径:在写文件路径的时候,可以用’.‘开头代表当前目录,或者’…'代表当前目录的上层目录
(当前目录指的是当前代码文件所在的文件夹)
注意:使用相对路径,被打开的文件必须放在工程当中
参数2:mode --文件打开方式,文件打开的数据类型
r-只读 文件不存在的报错
w-只写,打开文件夹的时候会清空原文件内容,文件不存在的时候会创建文件夹
a-只写,追加新的内容,不会清空原文件内容,文件不存在的时候会创建文件夹
数据类型: t-字符串(默认) b-二进制(bytes)
参数3:encoding —文本文件编码方式,以字符串数据类型打开才会需要设置
一般赋值为’utf-8’,'gbk’常见文件编码方式
utf-8:文本数据在存储的时候,ASCII表中的符号用一个字节来存储,中文用3个字节来存储,可以对任何符号编码
gbk:文本数据在存储的时候,ASCII表中的符号用一个字节来存储,中文用2个字节来存储,除了ASCII表中的符号和中文外,不能对其他符号编码
使用编码值的原则:存储数据的时候使用编码值要和获取数据的时候,编码值要一致
文件的读写
文件的读:
文件对象.read() --获取整个文件内容(从读写位置开始到结束位置)
文件对象.readline() – 获取一行内容(只能文本文件有效,从指针位置开始)
文件对象.readlines() --获取整个文件内容,返回一个列表,每一行内容就是就是一个元素(只能文本内容)
文件的写:
文件对象.write(数据)
文件对象.writelines(列表)
数据持久化的步骤
1)确定需要持久化的数据
2)创建保存需要持久化的数据的文件
3)确定文件初始内容(需要持久化的数据的初始值)
4)在程序中需要这个数据的时候从文件中获取这个数据
5)在程序中修改数据后,必须将最新的数据写入到文件中
# 练习:提示用户输入名字添加学生,添加完打印已经添加过的学生的名字
name=input('请输入你的名字:')
f=open('文件目标','a',encoding='utf-8')
f.write(name+'\t')
f=open('文件目标','r',encoding='utf-8')
print(f.read())
f.close()