关于python读取大文件的方法

</pre>做日志分析,需要处理非常大的日志文件,常用的方法如下所述:<pre name="code" class="python">in_f = open(file_path, 'r')
  while (True):
    line = in_f.readline()
    if line:
        #对该行数据进行操作
    else:
      break
  in_f.close()

但是当日志太大时这种方法并不可取(读取文件失败或者特别慢)

那么现在我们介绍两种方法:

1、with读取大文件

with open(file_path) as f:
    for line in f:
        #对该行代码进行操作

其中with负责处理open和close文件,抛出内部异常。而for则将文件对象当做迭代对象,自动处理IO缓冲和内存管理,这样就可以对大文件进行处理。

2、fileinput处理

import fileinput
for line in fileinput.input(['file_path'])
    #对该行数据进行操作


3、两种方法都好使,不过第一种方法更加符合python的风格,无需import,而且还可以处理close和Exception,感觉更棒。


参考http://www.zhidaow.com/post/python-read-big-file

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值