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

时间:2020-03-31 13:35:46

标签: python-3.x append

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

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

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

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

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

1 个答案:

答案 0 :(得分:2)

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

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)
相关问题