我需要逐行读取一个大文件。可以说该文件的大小超过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/
和
两者都很好!