Python最快的读取大文本文件的方法(几GB)

时间:2013-02-18 19:50:35

标签: python performance optimization line chunking

我有一个大文本文件(~7 GB)。我正在寻找是否存在阅读大文本文件的最快方法。我一直在阅读有关使用多种方法作为读取chunk-by-chunk的信息,以加快这一过程。

示例effbot建议

# File: readline-example-3.py

file = open("sample.txt")

while 1:
    lines = file.readlines(100000)
    if not lines:
        break
    for line in lines:
        pass # do something**strong text**

每秒处理96,900行文本。 其他authors建议使用islice()

from itertools import islice

with open(...) as f:
    while True:
        next_n_lines = list(islice(f, n))
        if not next_n_lines:
            break
        # process next_n_lines

list(islice(f, n))将返回文件n的下一个f行的列表。在循环内部使用此选项将以n

的块为单位提供文件

1 个答案:

答案 0 :(得分:12)

with open(<FILE>) as FileObj:
    for lines in FileObj:
        print lines # or do some other thing with the line...

将在此时读取一行内存,并在完成后关闭文件...