如何在Python中逐行读取大型文本文件而不将其加载到内存中?
我需要逐行读取一个大文件。可以说该文件的大小超过5GB,我需要读取每一行,但是显然我不想使用readlines()
它,因为它将在内存中创建一个非常大的列表。
下面的代码在这种情况下将如何工作?xreadlines
自身是否一一读取到内存中?是否需要生成器表达式?
f = (line for line in open("log.txt").xreadlines()) # how much is loaded in memory?f.next()
另外,与Linux tail
命令一样,我该怎么做才能以相反的顺序阅读?
回答:
我提供此答案是因为Keith的提示虽然简洁,但并未明确关闭文件
with open("log.txt") as infile: for line in infile:
do_something_with(line)
以上是 如何在Python中逐行读取大型文本文件而不将其加载到内存中? 的全部内容, 来源链接: utcz.com/qa/429341.html