python 查找文件内容性能 grep_python – 最快的方法来“grep”大文件

在处理大量日志文件时,寻找特定行的需求促使作者比较了四种不同的Python方法,包括读取整个文件、仅读取部分文件、调用系统grep以及结合tail和grep。结果显示,使用内存映射(mmap)的方法(method_5)在性能上最为优越,尤其是在处理大型文件时。
摘要由CSDN通过智能技术生成

我有大型日志文件(从100MB到2GB),包含一个(单个)特定的行,我需要在

Python程序中解析.我必须解析大约2万个文件.而且我知道所搜索的行是在文件的最后一行或最后15000个字节内.

因为这是一个重复的任务,我需要它尽可能快.最快的方法是什么?

我已经想到了4个策略:

>在Python中读取整个文件并搜索正则表达式(method_1)

>只读取文件的最后15,000个字节并搜索正则表达式(method_2)

>进行系统调用grep(method_3)

>在拖尾最后200行之后进行系统调用grep(method_4)

以下是我创建的测试这些策略的功能:

import os

import re

import subprocess

def method_1(filename):

"""Method 1: read whole file and regex"""

regex = r'\(TEMPS CP :[ ]*.*S\)'

with open(filename, 'r') as f:

txt = f.read()

match = re.search(regex, txt)

if match:

print match.group()

def method_2(filename):

"""Method 2: read part of the file and regex"""

regex = r'\(TEMPS CP :[ ]*.*S\)'

with

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值