Python读大数据量txt文本

    在用Python读一个两个多G的txt文本时,天真的直接用readlines方法,结果一运行内存就崩了。

    还好同事点拨了下,用yield方法,测试了下果然毫无压力。咎其原因,原来是readlines是把文本内容全部放于内存中,而yield则是类似于生成器。

 

代码如下:

def open_txt(file_name):
    with open(file_name,'r+') as f:
        line = f.readline()
        while line:
            yield line.strip()
            line = f.readline()

 

 

调用实例:

for text in open_txt('aa.txt'):
    print text

 

 

转载于:https://my.oschina.net/jhao104/blog/646905

你可能感兴趣的:(Python读大数据量txt文本)