我需要逐行读取一个大文件。假设该文件超过5 5GB,我需要读取每一行,但显然我不想使用readlines()
,因为它将在内存中创建一个非常大的列表。
下面的代码在这种情况下是如何工作的?xreadlines
本身是不是一个接一个地读入内存?是否需要生成器表达式?
f = (line for line in open("log.txt").xreadlines()) # how much is loaded in memory?
f.next()
另外,我应该怎么做才能像Linux tail
命令一样,以相反的顺序阅读这个文件呢?
我发现:
http://code.google.com/p/pytailer/
和
"python head, tail and backward read by lines of a text file“
两者都工作得很好!
https://stackoverflow.com/questions/6475328
复制相似问题