Python3 File(文件) 方法
Python3 File(文件)方法
🎯 学习目标
掌握 Python 文件对象常用的方法与操作技巧,包括打开、读取、写入、关闭等基本流程。理解不同模式下文件的处理方式,能够结合实际项目进行高效文件操作,并具备处理异常和大文件的能力。
🔑 核心重点
分类 | 内容 |
---|---|
基本操作 | open() 打开文件,read() , write() , close() 等方法 |
文件模式 | 'r' , 'w' , 'a' , 'rb' , 'wb' 等模式的区别 |
逐行读取 | 使用 readline() 和 for line in file: 高效读取大文件 |
上下文管理器 | 使用 with open(...) as f: 自动管理资源 |
异常处理 | 在文件操作中使用 try...except 避免程序崩溃 |
📚 详细讲解
一、文件的基本操作流程
Python 中对文件的操作通常遵循以下步骤:
- 打开文件(
open()
) - 读取或写入内容
- 关闭文件(
close()
)
✅ 示例:
f = open('example.txt', 'r')
content = f.read()
print(content)
f.close()
📌 推荐使用 with
语句自动管理资源:
with open('example.txt', 'r') as f:
content = f.read()
print(content)
# 不需要手动调用 close()
二、open()
函数详解
✅ 语法:
open(file, mode='r', encoding=None)
参数说明:
参数 | 含义 |
---|---|
file |
文件路径(字符串) |
mode |
模式(如 'r' , 'w' , 'a' 等) |
encoding |
编码格式(推荐指定为 'utf-8' ) |
✅ 常见模式一览表:
模式 | 描述 |
---|---|
'r' |
只读(默认),文件必须存在 |
'w' |
写入,清空原内容,若文件不存在则创建 |
'a' |
追加,在末尾添加内容 |
'r+' |
读写,文件必须存在 |
'w+' |
读写,覆盖原文件或新建文件 |
'rb' |
以二进制形式只读 |
'wb' |
以二进制形式写入 |
'ab' |
以二进制形式追加 |
三、文件读取方法详解
✅ read(size)
:一次性读取全部或部分文件内容
with open('example.txt', 'r') as f:
content = f.read(100) # 读取前100字节
print(content)
✅ readline()
:逐行读取
with open('example.txt', 'r') as f:
line = f.readline()
while line:
print(line.strip())
line = f.readline()
✅ readlines()
:返回所有行组成的列表
with open('example.txt', 'r') as f:
lines = f.readlines()
for line in lines:
print(line.strip())
✅ 最佳实践:直接迭代文件对象(效率最高)
with open('example.txt', 'r') as f:
for line in f:
print(line.strip())
四、文件写入方法详解
✅ write(string)
:写入字符串内容
with open('output.txt', 'w') as f:
f.write("Hello\n")
f.write("World\n")
✅ writelines(lines)
:写入多个字符串(不自动换行)
lines = ["第一行\n", "第二行\n", "第三行\n"]
with open('output.txt', 'w') as f:
f.writelines(lines)
五、文件定位与指针操作
✅ seek(offset, whence)
:移动文件指针位置
with open('example.txt', 'r') as f:
f.seek(10) # 移动到第10个字节处
content = f.read()
print(content)
offset
: 偏移量(正数向后,负数向前)whence
: 起始位置:0
(默认)从文件开头开始1
从当前位置开始2
从文件末尾开始
✅ tell()
:获取当前文件指针位置
with open('example.txt', 'r') as f:
print(f.tell()) # 输出 0
f.read(5)
print(f.tell()) # 输出 5
⚠️ 注意事项
- 文件操作完成后务必关闭(推荐使用
with
) - 大文件建议使用逐行读取避免内存溢出
- 二进制文件不能使用文本模式处理
- 写入模式
'w'
会清空已有文件,请谨慎使用 - 文件路径应使用绝对路径或确保相对路径正确
- Windows 下路径斜杠需注意转义(推荐使用
os.path
或pathlib
)
🧪 实际案例分析
📌 场景:实现一个“日志分析器”
功能需求:
- 读取日志文件(每行为一条日志)
- 统计包含关键字
"ERROR"
的行数 - 将这些错误日志输出到另一个文件中
示例代码:
input_file = 'app.log'
output_file = 'errors.log'
error_count = 0
with open(input_file, 'r') as infile, open(output_file, 'w') as outfile:
for line in infile:
if "ERROR" in line:
outfile.write(line)
error_count += 1
print(f"共找到 {error_count} 条错误日志,已保存至 {output_file}")
📌 示例日志文件内容(app.log
):
[INFO] 用户登录成功
[ERROR] 数据库连接失败
[WARNING] 内存使用过高
[ERROR] API 请求超时
📌 输出结果:
共找到 2 条错误日志,已保存至 errors.log
🧩 拓展练习(动手实践)
- 编写程序,统计一个
.txt
文件中单词数量(忽略标点符号)。 - 创建一个“倒计时记录器”,将每秒剩余时间写入文件。
- 实现一个“日记本”程序,每天生成一个新文件并记录内容。
- 编写脚本,批量重命名指定目录下的所有
.txt
文件。 - 构建一个“文件备份工具”,将指定文件夹中的文件复制到另一位置,并记录日志。
📚 推荐阅读
- Python 官方文档 - Built-in Functions - open()
- 《流畅的 Python》第 9 章 - 文件 I/O
- 廖雪峰 Python 教程 - 文件读写
- 菜鸟教程 - Python 文件读写
- Real Python - Reading and Writing Files in Python
🧭 下一步建议
- 下一章学习内容:《Python3 OS 模块与文件系统操作》
- 掌握如何使用
os
、os.path
和shutil
模块操作文件系统 - 学习遍历目录、判断文件类型、移动/删除文件等实用技能
- 结合文件读写知识,构建完整的文件管理系统
如果你希望我为你提供:
- Python 文件方法速查表 PDF(含函数+参数+示例)
- 更多实战项目练习题(如日志分析器、备份工具、文本编辑器等)
- 视频教学资源推荐(中文讲解)
- 如何结合
logging
模块实现专业级日志系统
欢迎随时告诉我 😊