在 Python 中加载 15GB 文件



我有一个包含25000行的15GB文本文件。我正在用Python创建一个多级字典,形式如下: dict1 = {'':int}, dict2 = {'':d ict1}.

我必须在我的程序中多次使用整个dict2(大约1000...在for循环中)。谁能说出一个好方法。

相同类型的信息存储在文件中(25000张图像的不同RGB值的计数,每行1张图像)例如:文件的 1 行如下所示:图片 1 : 255,255,255-70 ;234,221,231-40 ;112,13,19-28 ;图片 2 : 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习惯用法的大文件时可能会有所帮助,因为您将能够独立处理单独的分块文件,而无需将完整的数据集拉入内存。

在python中,如果使用文件对象作为迭代器,则可以逐行读取文件,而无需在内存中打开整个内容。

for line in open("huge_file.txt"):
    do_something_with(line)

相关内容

  • 没有找到相关文章

最新更新