day14-文件操作总结
01review
1.1 生成器
可以创建多个数据容器
-
怎么创建生成器
-
个数 - 遇到yield的次数 值 - yield后面的数据
def func1():
yield
g1 = func1()
1.2包和模块
# 1)模块 - py文件
# 2)包 - 包含__init__.py文件的文件夹
# 3)导入原理 - 导入模块的时候系统会进入到指定模块,将模块中的代码执行一遍
2.数据存储
2.1 计算机数据存储
"""
计算机内存分为运行内存和硬盘两种:保存在运行内存中的数据在程序运行结束后会自动释放。保存在硬盘的数据一直存在,除非硬盘损坏或者手动删除。
"""
2.2 数据持久化 —— 以文件为单位,将数据保存到硬盘中
'''
a.数据持久化又叫数据本地化,指的就是将程序中的数据保存在硬盘中(程序中的数据默认是保存在运行内存中的)
b.硬盘保存数据的基本单位是文件,所以如果想要把数据保存在硬盘中,就需要将数据保存到文件中。
c.常见的数据持久化:数据库(.db、.sqlite)、excel文件、csv文件、txt文件、json文件、plist文件。
d.
问题(1):怎么将程序中的数据保存到文件中?
问题(2):怎么将文件中的数据拿到程序中使用?
'''
文件操作 —— 操作文件内容
'''
文件操作基本步骤:
第一步:打开文件
第二步:操作文件内容(读操作,写操作)
第三步:关闭文件(不需要手动保存,因为代码操作会自动保存)
'''
-
打开文件
''' open(文件路径,文件打开方式='r',encoding=文本文件编码方式) 1.文件路径 —— 文件在计算机中的位置信息 文件路径分为两种,分别是绝对路径和相对路径: 1)绝对路径:文件在计算机中的全路径(把路径写全) 注意:如果是windows系统在使用路径的时候最好加一个r,阻止转义字符对它进行转义。 a.也可以用cmd,打开之后,把想要知道路径的文件拖进去,就会有路径。 b.也可以直接去文件所在处 2)相对路径: 注意:使用相对路径之前,需要先将被操作的文件放在工程目录中; a.在写路径的时候用 . 表示当前目录(当前目录指的是当前写代码的代码文件所在的文件夹); b.在写路径的时候用 .. 表示当前目录的上层目录。 # 注意:如果路径是以./开头的时候,./是可以省略的。 '''
'''
2.文件打开方式 —— 决定了打开文件后能做什么(是能读还是能写?);还决定操作文件的时候数据的类型(是字符串还是二进制?)
第一组值:r、w、a
r —— 只读: 如果文件不存在就会报错
w —— 只写:打开的时候会清空原文件;文件不存在会创建文件
a —— 只写,打开的时候不会清空原文件;文件不存在会创建文件
第二组值:t、b
t - 字符串类型(读到的数据,和写入文件的数据必须是字符串)
b - 二进制类型(bytes;读到的数据,和写入文件的数据必须是二进制)
给打开方式赋值的方式必须在两组值中每一组选一个值,如果第二组如果不选默认为 t:
'''
补充:常见计算机内存单位
"""
位(bit)
1字节(bytes) = 8位
1kb = 1024 字节
1mb = 1024 kb
1G = 1024mb
1T = 1024G
"""
"""
3) 文本文件编码方式
不同的文本文件编码方式,在保存同一个符号的编码值的时候采用的字节数不同
常见的文本文件编码方式:utf-8(推荐),gdk
utf-8:一个数字和字母采用一个字节来保存;一个中文用3个字节
gbk:一个数字和字母采用一个字节来保存;一个中文用2个字节
使用编码方式的要求:前后一致(储存数据的时候采用编码方式和获取数据的时候采用编码值一致)
"""
-
操作文件
""" 1.文件读操作 (获取文件内容) a.文件对象.read() - 获取整个文件内容(从读写位置开始获取结束,读写位置默认开头) a.文件对象.readline() - 从读写位置开始读一行(只针对文本文件有效) 注意:读操作会改变读写位置 文件对象.seek(0) - 将读写位置移动到文件开头 2.文件写操作 (包括增加内容、修改内容、删除内容) a.文件对象.write(内容) - 将指定内容写入指定文件中 3.关闭文件 文件对象.close() """
03 应用
"""
第一步:确定需要持久化的数据
第二步:创建文件,并确定文件初始内容
第三步:做到在程序中需要这个数据的时候从文件中获取这个数据
第四步:做到这个数据如果发生改变,必须将最新的数据更新到文件中
"""