如何在不将其加载到内存的情况下逐行读取Python中的大型文本文件?我需要逐行读一个大文件。假设该文件的容量超过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头、尾和后读"两个人都干得很好!
3 回答
茅侃侃
TA贡献1842条经验 获得超21个赞
with open("log.txt") as infile: for line in infile: do_something_with(line)
海绵宝宝撒
TA贡献1809条经验 获得超8个赞
for line in open("log.txt"): do_something_with(line)
with open("log.txt") as fileobject: for line in fileobject: do_something_with(line)
哆啦的时光机
TA贡献1779条经验 获得超6个赞
fh = open(file_name, 'rt')line = fh.readline()while line: # do stuff with line line = fh.readline()fh.close()
添加回答
举报
0/150
提交
取消