如何在不耗尽python内存的情况下遍历大文件?

时间:2019-05-11 20:47:05

标签: python memory crash generator

我想做的基本上是打印一个字符串在文件中出现的次数,但是文件太大,以至于当我尝试对其进行迭代时,程序总是崩溃:

import gzip
res = []
def fileopener(f):
    with gzip.open(f) as fhand:
        for line in fhand:
            res.append(line.count(b'NEU'))
        print(sum(res))

预期结果将是“ NEU”的总和,但是程序会崩溃,然后才能产生任何输出。我有什么办法可以阻止这种情况的发生吗?

1 个答案:

答案 0 :(得分:2)

在迭代时保持连续运行,而不是简单地累加要添加的东西。内置功能sum将为您完成此任务。

with gzip.open(f) as fhand:
    result = sum(line.count(b'NEU') for line in fhand)