1.1 操作文件的套路
在计算机中操作文件的套路非常固定,三个步骤:
1. 打开文件
2. 读、写文件
- 读 将文件内容读入内存
- 写 讲内存内容写入文件
3. 关闭文件
1.2 操作文件的函数/方法
在Python 中操作文件主要1个函数和3个方法
序号 | 函数/方法 | 说明 |
01 | open | 打开文件,并返回文件操作对象 |
02 | read | 将文件内容读取到内存 |
03 | write | 将指定内容写入文件 |
04 | close | 关闭文件 |
- open 函数负责打开文件,并且返回文件对象
- read/write/close 三个方法都需要通过 文件对象 来调用
1.3 read方法---读取文件
- open 函数的第一个参数是要打开的文件名,文件存在返回 文件操作对象
- read 方法可以一次性 读入 并 返回 文件的 所有内容
- close 方法负责 关闭文件
如果忘记关闭文件,会造成系统资源消耗,并且 会影响到后续对文件的访问
PS:方法执行后, 会把 文件指针 移动到 文件的末尾
示例:
# 1.打开文件
file = open("README")
# 2.读取文件内容
text = file.read()
print(text)
# 3.关闭文件
file.close()
文件指针
- 文件指针 标记 从哪个位置开式读取数据
- 第一次打开 文件时,通常 文件指针会指向文件的开始位置
- 当执行了 read 方法后, 文件指针 会移动到 读取内容的末尾
如果执行了一次 read 方法,读取了所有内容,那么再次调用 read 方法不会读取到任何内容
1.4 打开文件的方式
- open 函数默认以 只读方式 打开文件,并且返回文件对象
语法如下:
f = open("文件名", "访问方式")
r | 只读方式 |
w | 只写方式 |
a | 追加方式 |
r+ | 以读写方式打开文件。文件的指针将会放在文件的开头 |
w+ | 以读写方式打开文件。文件存在会被覆盖 |
a+ | 以读写方式打开文件。文件已存在,文件指针将会放在文件的结尾 |
PS:频繁的移动文件指针,会影响文件的读写效率。
1.5 按行读取文件内容
- read 方法默认会把文件的 所有内容 一次性读取到内存
- 如果文件太大,会对内存的占用非常严重
readline方法
- readline 方法可以一次读取一行内容
- 方法执行后,会把 文件指针 移动到下一行,准备再次读取
1.6 文件复制
目标:源文件 ——> 目标文件
小文件复制
- 打开一个已有文件,读取完整内容,并写入到另外一个文件
大文件复制
- 打开一个已有文件,逐行读取内容,并顺序写入到另外一个文件
示例
# 1. 打开
file_read = open("README")
file_write = open("README[复件]", "w")
# 2. 读写
while True:
text = file_read.readline()
# 判断是否读取到内容
if not text:
break
file_write.write(text)
# 3. 关闭
file_read.close()
file_write.close()
1.6 文件/目录的常用管理操作
导入 os 模块
文件操作
方法名 | 说明 | 示例 |
rename | 重新命名文件 | os.rename(源文件名, 目标文件名) |
remove | 删除文件 | os.remove(文件名) |
目录操作
方法名 | 说明 | 示例 |
listdir | 目录列表 | os.listdir(目录名) |
mkdir | 创建目录 | os.mkdir(目录名) |
rmdir | 删除目录 | os.rmdir(目录名) |
getcwd | 获取当前目录 | os.getcwd() |
chdir | 修改工作目录 | os.chdir(目标目录) |
path.isdir | 判断是否是文件 | os.path.isdir(文件路径) |
PS:文件或者目录操作都支持 相对路径 和 绝对路径