在python中,如何迭代一个大文件而不耗尽内存?

2024-05-02 11:45:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我想做的基本上是打印一个字符串在一个文件中出现的次数,但是这个文件太大了,当我尝试遍历它时,程序总是崩溃:

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”的总和,但相反,程序在产生任何输出之前就崩溃了。我能做些什么来阻止这一切的发生吗?你知道吗


Tags: 文件字符串import程序defaswithline
1条回答
网友
1楼 · 发布于 2024-05-02 11:45:55

在迭代时保持一个运行总数,而不是简单地累积要添加的内容。内置函数sum将为您执行此操作。你知道吗

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

相关问题 更多 >