关于性能:Python读取大文本文件的最快方式(几GB)

Python fastest way to read a large text file (several GB)

本问题已经有最佳答案,请猛点这里访问。

我有一个大的文本文件(~7GB)。我正在寻找是否存在最快的方法来读取大文本文件。我一直在阅读关于使用几种方法逐块读取以加快进程的内容。

例如,effbot建议

1
2
3
4
5
6
7
8
9
10
# 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**

以每秒处理96900行文本。其他作者建议使用islice()。

1
2
3
4
5
6
7
8
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))将返回文件f的下一行n的列表。在一个循环中使用这个函数,将以n行为单位提供文件。


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

将一次读取一行到内存,完成后关闭文件…