【发布时间】:2012-02-08 07:04:18
【问题描述】:
要逐行处理一个大文本文件(1G+),需要任何行号的随机访问,最重要的是,不需要将整个文件内容加载到 RAM 中。有没有一个python库可以做到这一点?
在分析大型日志文件时很有用,只读就足够了。
如果没有这样的标准库,我只好寻找替代方法:找到一组函数/类,可以从一个大字符串对象返回第N行子字符串,这样我就可以mmap(是的,我的意思是内存映射文件对象)将文件映射到该对象,然后进行基于行的处理。
谢谢。
PS:一个日志文件几乎肯定有可变的行长。
【问题讨论】:
-
所有行的长度都一样吗?
-
您可以对文件进行预处理以创建各种索引吗?