- 逐行读取
- 原理:避免一次性将整个文件读入内存,而是逐行读取并处理,大大减少内存占用。
- 代码示例:
with open('large_file.txt', 'r') as file:
for line in file:
# 在这里处理每一行的数据
print(line.strip())
- 使用生成器
- 原理:生成器是一种特殊的迭代器,它可以按需生成数据,而不是一次性生成所有数据,从而节省内存。
- 代码示例:
def read_large_file(file_path):
with open(file_path, 'r') as file:
for line in file:
yield line
for line in read_large_file('large_file.txt'):
# 在这里处理每一行的数据
print(line.strip())
- 分块读取二进制文件(针对二进制大文件)
- 原理:以固定大小的块为单位读取二进制文件,而不是一次性读取整个文件。
- 代码示例:
chunk_size = 1024 * 1024 # 1MB块大小
with open('large_binary_file', 'rb') as file:
while True:
chunk = file.read(chunk_size)
if not chunk:
break
# 在这里处理块数据
print(len(chunk))