当前位置:首页>python>Python 文件操作 超详细完整教程

Python 文件操作 超详细完整教程

  • 2026-10-11 08:26:16
Python 文件操作 超详细完整教程

一、文件打开基础语法

1. 基础打开方式

open(file, mode="r", encoding="utf-8")
  • • file:文件路径(相对路径 / 绝对路径)
  • • mode:打开模式,默认 r 只读
  • • encoding:文本编码,文本文件必须指定encoding="utf-8"

2. 操作文件三步

  1. 1. 打开文件 open()
  2. 2. 读 / 写 操作
  3. 3. 关闭文件 close()

不手动关闭会造成资源占用、文件损坏


二、五大核心打开模式(必背)

1. 文本模式(处理文字)

模式
含义
特点
r只读
(默认)
文件不存在→报错;只能读,不能写
w清空写入
文件不存在→新建;存在→清空原有内容,从头写入
a追加写入
文件不存在→新建;存在→在文件末尾追加,不覆盖

2. 二进制模式(图片、视频、音频、压缩包)

模式
含义
rb
二进制只读
wb
二进制清空写入

关键区别

  • • 文本模式 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()
  • • 逐行读取,节省内存
  • • 会读取换行符 \n

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()
  • • w 模式:覆盖原内容
  • • a 模式:末尾追加内容

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()
  • • 二进制模式不能指定 encoding
  • • 读写都是 bytes 字节数据

六、with 语句 上下文管理器(重点推荐)

1. 作用

  • • 自动关闭文件,无需手动 close()
  • • 代码简洁、安全,防止忘记关闭文件
  • • 出现异常也能正常释放文件资源

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())

七、模式组合拓展(了解)

  • • r+:可读可写,指针在开头,不清空原文件
  • • w+:可读可写,先清空文件
  • • a+:可读可追加

八、高频易错点总结

  1. 1. 文本文件必须加 encoding="utf-8",否则中文乱码
  2. 2. w 打开直接清空文件,谨慎使用
  3. 3. readline / readlines 会携带换行符 \n
  4. 4. 二进制 rb/wb 禁止写 encoding
  5. 5. 开发统一使用 with 语句,不要手动 close
  6. 6. 路径有中文、空格,尽量使用原始字符串 r"路径"

📝 本章核心速记

  1. 1. 打开模式
    • • r 只读、w 覆盖写、a 追加写
    • • rb/wb 二进制读写
  2. 2. 读取
    • • read() 全文、readline() 单行、readlines() 行列表
  3. 3. 写入
    • • write() 单个字符串、writelines() 多行序列
  4. 4. with 上下文管理器
    • • 自动关闭文件,开发首选写法

最新文章

随机文章