一、文件打开基础语法
1. 基础打开方式
open(file, mode="r", encoding="utf-8")
- •
encoding:文本编码,文本文件必须指定encoding="utf-8"
2. 操作文件三步
不手动关闭会造成资源占用、文件损坏
二、五大核心打开模式(必背)
1. 文本模式(处理文字)
2. 二进制模式(图片、视频、音频、压缩包)
关键区别
- • 文本模式
r/w/a:需要指定 encoding,操作字符串 - • 二进制模式
rb/wb:不要写 encoding,操作字节 bytes
三、文本文件 读取操作(read / readline / readlines)
1. read() 一次性读取全部内容
f = open("test.txt", "r", encoding="utf-8")
content = f.read()
print(content)
f.close()
2. readline() 一次读取一行
f = open("test.txt", "r", encoding="utf-8")
line1 = f.readline()
line2 = f.readline()
print(line1, line2)
f.close()
3. readlines() 读取所有行,返回列表
f = open("test.txt", "r", encoding="utf-8")
line_list = f.readlines()
print(line_list)
f.close()
四、文本文件 写入操作(write / writelines)
1. write() 写入单个字符串
f = open("test.txt", "w", encoding="utf-8")
f.write("Hello Python\n")
f.write("文件写入测试")
f.close()
2. writelines() 写入序列(列表、元组)
lst = ["第一行\n", "第二行\n", "第三行"]
f = open("test.txt", "a", encoding="utf-8")
f.writelines(lst)
f.close()
⚠️ 注意:
writelines不会自动换行,需要手动加 \n
五、二进制文件读写(rb / wb)
用于:图片、视频、exe、压缩包、非文本文件
# 二进制读取
f = open("image.jpg", "rb")
data = f.read()
f.close()
# 二进制写入(复制文件案例)
f1 = open("image.jpg", "rb")
f2 = open("copy.jpg", "wb")
f2.write(f1.read())
f1.close()
f2.close()
六、with 语句 上下文管理器(重点推荐)
1. 作用
2. 语法格式
withopen(文件路径, 模式, encoding) as 变量:
# 文件操作代码
3. 读取文件 with 示例
withopen("test.txt", "r", encoding="utf-8") as f:
content = f.read()
print(content)
# 代码走出 with 缩进,文件自动关闭
4. 写入文件 with 示例
withopen("test.txt", "a", encoding="utf-8") as f:
f.write("追加一行新内容")
5. 同时打开两个文件(文件复制)
withopen("a.txt", "r", encoding="utf-8") as f1,\
open("b.txt", "w", encoding="utf-8") as f2:
f2.write(f1.read())
七、模式组合拓展(了解)
八、高频易错点总结
- 1. 文本文件必须加
encoding="utf-8",否则中文乱码 - 3.
readline / readlines 会携带换行符 \n - 4. 二进制
rb/wb 禁止写 encoding - 5. 开发统一使用 with 语句,不要手动 close
- 6. 路径有中文、空格,尽量使用原始字符串
r"路径"
📝 本章核心速记
- •
read() 全文、readline() 单行、readlines() 行列表
- •
write() 单个字符串、writelines() 多行序列