将大.txt文件的内容保存到python中的变量中

大卫

我有一个巨大的.txt文件,其中包含约100m行,我想将其内容逐行保存到列表中。

我正在使用以下代码来实现这一目标:

tmp=[]
with open('xy.txt') as f:
    for line in f:
        tmp.append(line)

现在的问题是,在读取整个文件之前,这段代码不会释放内存,因此一段时间后它会耗尽内存。

我的问题是,有什么办法可以有效地完成任务记忆吗?

客人

您可以定义一个生成器,逐行生成:

def gen():
    with open('xy.txt') as fh:
        yield from fh

如果只需要其中的特定部分,则可以itertools.islice用来选择该切片:

import itertools as it

data = it.islice(gen(), 10**6, 10**7)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章