
Python中的文件操作(File I/O)是处理数据持久化的基础功能。以下是一份关于文件操作的全面指南,涵盖常用方法、最佳实践和实际示例:
一、文件操作核心步骤
文件的打开 → 执行读写操作 → 关闭文件。在这一过程中,需要注意的是始终要确保资源的释放,以避免内存泄漏。
二、文件打开模式
文件打开模式决定了文件如何被处理和访问。下面是几种常见的文件打开模式及其描述:
| 模式 | 描述 | 文件存在情况 | 文件不存在情况 |
|||||
| ‘r’ | 只读模式 | 正常打开文件 | 报错,提示FileNotFoundError |
| ‘w’ | 写入模式 | 清空内容 | 创建新文件 |
| ‘a’ | 追加模式 | 保留内容,末尾追加 | 创建新文件 |
| ‘x’ | 独占创建模式 | 报错,提示FileExistsError | 创建新文件 |
| ‘b’ | 二进制模式(如图片) | 需与其他模式组合使用(如 ‘rb’) | |
| ‘+’ | 读写模式(如 ‘r+’ 可读写) | | |
三、基础文件操作
1. 读取文件:
方法一:一次性读取(适合小文件)。例如:
python
with open(‘file.txt’, ‘r’, encoding=’utf-8′) as f:
content = f.read() 全部内容 → str
lines = f.readlines() 按行读取 → List[str]
方法二:逐行读取(内存友好)。例如:
python
with open(‘large_file.txt’, ‘r’) as f:
for line in f: 迭代器逐行处理
print(line.strip())
2. 写入文件:
覆盖写入:使用 ‘w’ 模式,例如:
python
with open(‘output.txt’, ‘w’) as f:
f.write(“Hello”) 写入字符串
f.writelines([“Line1”, “Line2”]) 写入多行
追加写入:使用 ‘a’ 模式。例如:
python
import datetime
with open(‘log.txt’, ‘a’) as f:
f.write(f”{datetime.now()}: New log entry”)
3. 二进制文件操作:例如复制图片文件。使用 ‘rb’ 和 ‘wb’ 模式。例如:`dst.write(src.read())`。
