我有一个包含 25000 行的 15GB 文本文件。我正在用 Python 的形式创建一个多级字典: dict1 = {'':int}, dict2 = {'':dict1}。
我必须在我的程序中多次使用整个 dict2(大约 1000 次……在 for 循环中)。任何人都可以告诉一个好的方法来做到这一点。
同类型的信息存储在文件中(计算 25000 张图像的不同 RGB 值。每行 1 张图像)例如:文件的 1 行如下:图片 1:255,255,255-70; 234,221,231-40; 112,13,19-28 ;image2 : 5,25,25-30 ; 34,15,61-20 ; 102,103,109-228;等等。
最好的方法是使用分块。
def read_in_chunks(file_object, chunk_size=1024):
"""Lazy function (generator) to read a file piece by piece.
Default chunk size: 1k."""
while True:
data = file_object.read(chunk_size)
if not data:
break
yield data
f = open('really_big_file.dat')
for piece in read_in_chunks(f):
process_data(piece)
请注意,当您开始处理大文件时,迁移到 map-reduce 习惯用法可能会有所帮助,因为您将能够独立处理单独的分块文件,而无需将完整的数据集拉入内存。
我是一名优秀的程序员,十分优秀!