TUE.文件操作
今日内容
程序 = 数据 + 功能
1.文件处理的基本步骤
2.with 语法
3.文件打开模式
4.文件操作方法
5.控制文件指针移动
6.文件修改的两种方式
什么是文件?
- 文件是操作系统提供给用户或者说应用程序操作硬盘的一种功能、接口
为何要用文件
- 读写文件就是在读写硬盘:我们对文件的读写操作会被操作系统转换成硬盘的读写操作
1. 文件的基本处理步骤
应用程序------内存
操作系统------文件
硬件----------硬盘
如何用文件
f = open(r'a.txt', mode='rt', encoding='utf')
print(f.read)
文件 = 游戏机
f = open函数返回值(文件句柄/文件对象)= 游戏手柄
f.close()
# 文件关闭后,f(文件句柄)即变量值依然存在,如果该变量所占内存不大不必刻意使用del解除两者关系,回收该变量
2. with语法
with open(r'a.txt', mode='rt',encoding='utf8') as f:
with open(取消转义'文件路径', 读写模式, 解码方式) as:
变量名
PS:ulimt命令,优化运行机制,提升用户可以打开最大文件数目的上限
3. 文件打开模式
- 控制文件读写操作的模式
r模式:只读模式,如果文件不存在则报错,存在则文件指针处于文件开头
w模式:只写模式,文件不存在则新建,存在则覆盖原文件,文件指针处于开头,三思而后行,想清楚再用
# w模式,在打开文件不关闭的情况下,连续write写入相当于append,关闭后再添加则覆盖原数据
a模式:只追加写模式,如果文件不存在则创建空文档,文件存在则在末尾添加,文件指针处于文件末尾
- 控制文件读写内容的模式?
t模式:读写都是以字符串为单位的,只适用于文本文件,必须制定encoding参数
b模式:读写都是以bytes(等同于二进制,但并不是二进制)为单位的,适用于所有文件,一定不能指定encoding参数,但是b模式下不能直接写入字符串,需要在操作后进行编码
# 不能单独使用,只能配合操作模式使用,不指定读写内容模式的情况下,读写内容模式为t模式
- 省略文件打开模式则默认为’rt’模式
writelines
4. 文件操作方法
5.文件指针移动
大前提:只有t模式下的 f.read(n) 中的 n 代表的是字符个数,除此以外,关于指针的移动,单位都是字节 bytes
1.f.read
2.f.truncate 截断文件(配合'r', 'a' 使用)
3.f.seek(offset, [whence])
offset -- 开始的偏移量,也就是代表需要移动偏移的字节数,如果是负数表示从倒数第几位开始。
whence -- 可选,默认值为 0。给 offset 定义一个参数,表示要从哪个位置开始偏移;0 代表从文件开头开始算起,1 代表从当前位置开始算起,2 代表从文件末尾算起。