我要做的基本上是打印一个字符串在文件中出现的次数,但是文件太大,以至于我尝试对其进行迭代时,程序总是崩溃:
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”的总和,但程序会崩溃,然后才能产生任何输出。我有什么办法可以阻止这种情况的发生吗?
最佳答案
迭代时保持连续运行,而不是简单地累加要添加的东西。内置函数sum
将为您完成此操作。
with gzip.open(f) as fhand:
result = sum(line.count(b'NEU') for line in fhand)
关于python - 如何在不耗尽python内存的情况下遍历大文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56094162/