文件操作
一、计算机存储数据
默认情况下 程序中的数据是保存在运行内存中,当程序运行结束,在运行内存中保存的数据会自动销毁
如果希望这次运行程序的时候可以使用上一次运行程序的结果,就必须把数据保存在硬盘中。
硬盘保存数据的时候最小单位是文件
二、数据持久化
将数据以文件的形式保存在硬盘中
怎么将程序中的数据保存到文件中;怎么在程序中获取文件中的数据—这就要用到文件操作
三、文件操作
基本流程:打开文件 - 文件读写操作 - 关闭文件
1、打开文件
open(file,mode='r',encoding=None)--以指定的方法打开指定文件
参数1 file -- 需要打开文件的路径(文件路径可以是绝对路径和相对路径)
绝对路径:文件在计算机中的全路径(windows从盘开始写)
相对路径:用`.`代表当前目录,`..`代表上级目录
当前目录:当前代码文件所在的文件夹
如果路径以'./'开头,可以省略不写
参数2 mode -- 文件打开方式,用来决定打开文件之后能做什么(能读还是能写)
给mode赋值的时候需要两组值
第一组:决定打开后能做什么对应的值
r-只读 文件不存在的时候报错
w-只写;打开的时候会清空原文件 文件不存在的时候会创建文件
a-追加写;打开的时候不会清空原文件内容 文件不存在的时候会创建文件
第二组:决定操作文件的时候数据的类型
t-字符串
b-二进制
赋值的时候上面两组值每一组必须选择一个,第二组默认选择t
参数3 encoding -- 文本文件编码方式(只有在以t方式打开文件的时候才需要设置encoding)
一般赋值utf-8,gbk也是一种常见的文件编码方式
utf-8
:文本数据在存储的时候,ASCII表中符号用1个字节存储,一个中文用3个字节存储,可以对任何符号编码
gbk
:文本数据在存储的时候,ASCII表中符号用1个字节存储,一个中文用2个字节存储,不能对除了ASCII表和中文以外的数据编码
使用编码值的原则:存储数据和获取数据对应的编码值要一致
2、文件读写操作
2.1 文件读操作
方法 | 作用 |
---|---|
文件对象.read() | 获取整个文件内容(从读写位置开始到文件结束) |
文件对象.readline() | 获取一行内容(只能文本文件有效) |
文件对象.readlines() | 获取整个文件内容,返回一个列表,列表中的每个元素都是文件的一行 |
文件对象.seek() | 将读写位置移动到文件开始位置 |
2.2 文件写操作
方法 | 作用 |
---|---|
文件对象.wirte() | 将内容写入文件 |
文件对象.writelines | 将内容写入文件 |
3、关闭文件
方法 | 作用 |
---|---|
文件对象.close() | 关闭文件 |