在 Python 中,文件对象的 read、readline 和 readlines 三种读取方式的差异是什么?
考察说明
考查对 Python 文件读取方法基本用法和内存影响的理解。
回答思路
- 【回答框架 1】read() 方法默认读取整个文件内容并作为单个字符串返回,若给定参数 size 则最多读取 size 个字符或字节(取决于文件打开模式)。
- 【回答框架 2】readline() 每次读取一行,包括行尾的换行符,若给定参数 size 则最多读取该数量的字符,适用于逐行处理大文件以减少内存占用。
- 【回答框架 3】readlines() 读取所有行并返回一个字符串列表,每行作为一个元素,包含换行符,适合需要随机访问各行或行数较少的情况。
- 【回答框架 4】三者主要区别在于返回类型和内存占用:read 返回字符串,readline 返回字符串,readlines 返回列表;大文件时 read 和 readlines 可能占用大量内存,建议使用 for line in f 迭代或 readline。
- 【关键点 1】read() 返回整个文件内容的字符串,可选 size 参数限制读取字符数。
- 【关键点 2】readline() 逐行读取并返回一行字符串,保留换行符。
- 【关键点 3】readlines() 返回包含所有行的列表,每行是字符串。
- 【关键点 4】大文件读取优先考虑迭代器方式(for line in f)以减少内存峰值。
- 【易错点 1】混淆 read() 的 size 参数为行数,实际是字符数。
- 【易错点 2】忽略 readlines() 返回的列表元素包含换行符,导致处理时需要额外处理。
- 【易错点 3】在循环中反复调用 readline() 而没有检查文件末尾,导致越界问题。