思路
- 数据分块处理:将大量数据分成较小的块进行处理,避免一次性加载过多数据到内存中。
- 使用高效的数据存储格式:如使用
pickle
模块将数据保存为二进制文件,相比文本格式占用空间更小。
- 逐行写入:对于类似CSV等文本格式,采用逐行写入的方式,而不是先在内存中构建完整文件内容再写入。
关键代码示例
- 使用
pickle
模块:
import pickle
data = [{'name': 'user1', 'data': [1, 2, 3]}, {'name': 'user2', 'data': [4, 5, 6]}]
with open('data.pkl', 'wb') as f:
pickle.dump(data, f)
- 分块处理并保存为CSV(假设数据结构适合CSV):
import csv
data = [{'name': 'user1', 'data': [1, 2, 3]}, {'name': 'user2', 'data': [4, 5, 6]}]
chunk_size = 1000
for i in range(0, len(data), chunk_size):
chunk = data[i:i + chunk_size]
with open('data.csv', 'a', newline='') as csvfile:
fieldnames = ['name', 'data']
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
if i == 0:
writer.writeheader()
for row in chunk:
writer.writerow(row)