fastest method

david.garvey at gmail.com david.garvey at gmail.com
Wed Jun 20 20:26:30 CEST 2012


I see one issue;)

# if last doesn't exist or is greater than current

This else doesn't catch the last greater than current:


This is a little messy.


with open(filename) as f:
    print "Here is filename:%s" %filename
    f.seek(0, 2)
    eof = f.tell()
    print "Here is eof:%s" %eof
    if last is not None:
        print "Here is last:%s" %last
        # if last is less than current
        last = int(last)
        if (eof - last  > 0):
            offset = eof - last
            offset = offset * -1
            print "Here is new offset:%s" %offset
            f.seek(offset, 2)
            mylist = f.readlines()
        else:
            f.seek(0)
            bof = f.tell()
            print "Here is bof:%s" %bof
            mylist = f.readlines()
    else:
        f.seek(0)
        bof = f.tell()
        print "Here is bof:%s" %bof
        mylist = f.readlines()




On Wed, Jun 20, 2012 at 11:17 AM, david.garvey at gmail.com <
david.garvey at gmail.com> wrote:

> I am looking for the fastest way to parse a log file.
>
>
> currently I have this... Can I speed this up any? The script is written to
> be a generic log file parser so I can't rely on some predictable pattern.
>
>
> def check_data(data,keywords):
>     #get rid of duplicates
>     unique_list = list(set(data))
>     string_list=' '.join(unique_list)
>     #print string_list
>     for keyword in keywords:
>         if keyword in string_list:
>             return True
>
>
> I am currently using file seek and maintaining a last byte count file:
>
> with open(filename) as f:
>     print "Here is filename:%s" %filename
>     f.seek(0, 2)
>     eof = f.tell()
>     print "Here is eof:%s" %eof
>     if last is not None:
>         print "Here is last:%s" %last
>         # if last is less than current
>         last = int(last)
>         if (eof - last  > 0):
>             offset = eof - last
>             offset = offset * -1
>             print "Here is new offset:%s" %offset
>             f.seek(offset, 2)
>             mylist = f.readlines()
>     else:
>         # if last doesn't exist or is greater than current
>         f.seek(0)
>         bof = f.tell()
>         print "Here is bof:%s" %bof
>         mylist = f.readlines()
>
>
>
> Thanks,
> --
> David Garvey
>



-- 
David Garvey
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20120620/c966d06e/attachment.html>


More information about the Python-list mailing list