面试题答案
一键面试def read_large_file(file_path):
with open(file_path, 'r', encoding='utf-8') as file:
for line in file:
yield line.strip()
# 使用示例
file_path = 'your_large_file.txt'
for line in read_large_file(file_path):
print(line)
优势
- 内存高效:当处理百万行甚至更大的文件时,一次性将整个文件读入内存可能会导致内存溢出错误。而使用生成器逐行读取,每次只在内存中保留一行数据,大大减少了内存占用,使得程序可以处理远超系统内存大小的文件。
- 即时处理:生成器在读取到每一行后就可以立即对其进行处理,而无需等待整个文件加载完成,提高了处理效率和响应速度。
- 灵活性:生成器允许按需获取数据,适用于需要对文件进行流式处理的场景,比如实时数据分析、日志处理等。