Python 读取大文件
2017-08-11 本文已影响67人
037251a7c483
#!/usr/bin/env python
#coding: utf-8
'''
Xi Python Tips 16
使用with语句以及迭代文件对象处理大文件。
1. with语句基于上下文管理协议。Python对一些内建对象引入上下文管理,因此能够使用with语句。
比如文件对象,使用with语句后,不管处理过程中引发什么异常,都能够正确的关闭文件,释放占用的文件句柄。
2. 处理大文件时不能讲文件一次性全部读入内存,否则会撑爆内存(内存足够大除外)。因此不适合用 readline()。
使用readlines()能够做到逐行读取,但是使用with语句能保证正确关闭
测试环境: 6G日志
'''
with open("/alidata1/wwwlogs/access-rtb.log", 'r') as f:
sum = 0
for i in f:
sum += 1
print sum
[root@nginx02 ~]# time python al.py
45766144
real 1m17.330s
user 0m11.750s
sys 0m3.881s