一直以来我都是用readlines的方法,把文件都读进来处理,其实这个方法不大的文件,因为都都进来,这样就比较吃内存。我这边动辄搞1,200百万行的数据文件,这样搞不太好,也是经过一段时间学习,理解 总结如下
大家一起讨论、分享

如果文本文件不是那么大,您可以一次将文本文件的全部内容读入内存。

with open('input.txt', encoding='utf-8') as f:
    lines = f.readlines()

readline() 以字符串形式返回一行,用while循环,读文件,这样就一行一行读,不会太吃内存

with open('input.txt') as f:
    while True:
        line = f.readline()
        if not line: break
        line = line.rstrip('\r\n')
        print(line)

或者

while True:
        text_line = file.readline()
        if text_line:
            print(text_line.strip('\n'))
        else:
            break

如何使用文件句柄逐行迭代,这里就用了生成器

def each_line(filename):
    with open(filename, encoding='utf-8') as f:
        for line in f:
            yield line.strip('\n')
            # yield line.rstrip('\r\n')


for line in each_line('test.txt'):
    print(line)
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐