如何在 python 内存不足 运行 的情况下遍历大文件?
How do I iterate through a large file without running out of memory in 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' 的总和,但程序在产生任何输出之前就崩溃了。我能做些什么来阻止这种情况发生吗?
在迭代时保持 运行 总数,而不是简单地积累要添加的东西。 built-in 函数 sum
会为您做这件事。
with gzip.open(f) as fhand:
result = sum(line.count(b'NEU') for line in fhand)
我想做的基本上是打印一个字符串在一个文件中出现了多少次,但是文件太大以至于当我尝试遍历它时程序总是崩溃:
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' 的总和,但程序在产生任何输出之前就崩溃了。我能做些什么来阻止这种情况发生吗?
在迭代时保持 运行 总数,而不是简单地积累要添加的东西。 built-in 函数 sum
会为您做这件事。
with gzip.open(f) as fhand:
result = sum(line.count(b'NEU') for line in fhand)