面试题答案
一键面试- 优化思路:
- 避免一次性将整个大文件读入内存,采用逐行读取或按固定块大小读取的方式,这样每次在内存中仅保留一小部分数据,从而控制内存使用。
- Python相关技术:
- 逐行读取:
- 使用
with open()
语句打开文件,它会在文件使用完毕后自动关闭文件,避免资源泄漏。 - 使用
for
循环逐行迭代文件对象。例如:
- 使用
- 逐行读取:
with open('large_file.txt', 'r') as f:
for line in f:
# 在这里对每一行进行处理,如分析、统计等
print(line.strip())
- 按块读取:
- 同样使用
with open()
语句打开文件。 - 使用文件对象的
read()
方法,并指定每次读取的字节数(块大小)。例如:
- 同样使用
block_size = 1024 * 1024 # 1MB块大小
with open('large_file.txt', 'r') as f:
while True:
block = f.read(block_size)
if not block:
break
# 在这里对读取的块进行处理
print(len(block))