为什么要学文件操作?
几乎所有的Python程序都需要处理文件——读取配置、保存数据、处理日志等。
读取文件
# 方式一:传统方式(需要手动关闭)
f = open('data.txt', 'r', encoding='utf-8')
content = f.read()
f.close()
# 方式二:with语句(推荐)
with open('data.txt', 'r', encoding='utf-8') as f:
content = f.read()
# 自动关闭文件
读取方式对比
| 方法 | 功能 | 适用场景 |
|---|---|---|
read() |
读取全部 | 文件较小 |
readline() |
读取一行 | 逐行处理 |
readlines() |
读取所有行 | 需要操作行列表 |
写入文件
# 覆盖写入
with open('output.txt', 'w', encoding='utf-8') as f:
f.write('Hello, World!')
# 追加写入
with open('log.txt', 'a', encoding='utf-8') as f:
f.write('新的日志内容\n')
文件路径处理
import os
from pathlib import Path
# 获取当前目录
print(os.getcwd())
# 拼接路径(跨平台安全)
path = os.path.join('data', 'user', 'info.txt')
# 使用pathlib更优雅
p = Path('data') / 'user' / 'info.txt'
print(p.exists()) # 判断是否存在
JSON文件操作
import json
# 写入JSON
data = {'name': '小明', 'age': 18}
with open('user.json', 'w', encoding='utf-8') as f:
json.dump(data, f, ensure_ascii=False, indent=2)
# 读取JSON
with open('user.json', 'r', encoding='utf-8') as f:
loaded = json.load(f)
总结
掌握文件操作是Python开发的基础技能。推荐使用 with 语句来自动管理文件资源。