首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Python中逐行读取大型文本文件,而不将其加载到内存中?

如何在Python中逐行读取大型文本文件,而不将其加载到内存中?
EN

Stack Overflow用户
提问于 2011-06-25 10:04:15
回答 12查看 317.4K关注 0票数 287

我需要逐行读取一个大文件。假设该文件超过5 5GB,我需要读取每一行,但显然我不想使用readlines(),因为它将在内存中创建一个非常大的列表。

下面的代码在这种情况下是如何工作的?xreadlines本身是不是一个接一个地读入内存?是否需要生成器表达式?

代码语言:javascript
复制
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

两者都工作得很好!

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6475328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档