有关 Python 中的 File.readlines(sizehint) 函数

来源:互联网 发布:excel数据分析插件 编辑:程序博客网 时间:2024/04/28 21:50
在处理日志文件的时候,常常会遇到这样的情况:日志文件巨大,不可能一次性把整个文件读入到内存中进行处理,例如需要在一台物理内存为 2GB 的机器上处理一个 2GB 的日志文件,我们可能希望每次只处理其中 200MB 的内容。
在 Python 中,内置的 File 对象直接提供了一个 readlines(sizehint) 函数来完成这样的事情。以下面的代码为例:

file = open('test.log''r')
sizehint 
= 209715200   # 200M
position = 0
lines 
= file.readlines(sizehint)
while not file.tell() - position < 0:
    position 
= file.tell()
    lines 
= file.readlines(sizehint)

每次调用 readlines(sizehint) 函数,会返回大约 200MB 的数据,而且所返回的必然都是完整的行数据,大多数情况下,返回的数据的字节数会稍微比 sizehint 指定的值大一点(除最后一次调用 readlines(sizehint) 函数的时候)。通常情况下,Python 会自动将用户指定的 sizehint 的值调整成内部缓存大小的整数倍。
原创粉丝点击