我需要逐行读取一个大文件.假设文件超过5GB,我需要读取每一行,但显然我不想使用,readlines()因为它会在内存中创建一个非常大的列表.
以下代码如何适用于此案例?xreadlines本身是一个一个地读入记忆吗?是否需要生成器表达式?
f = (line for line in open("log.txt").xreadlines()) # how much is loaded in memory?
f.next()
Run Code Online (Sandbox Code Playgroud)
另外,我可以做什么来以相反的顺序读取它,就像Linux tail命令一样?
我发现:
http://code.google.com/p/pytailer/
和
两者都运作得很好!
python ×1