Sorting Apache Log Files
sholden at holdenweb.com
Thu Jun 28 20:40:03 CEST 2001
Note, however, that you only get strptime() if your C library defines it.
There's a pure-Python implementation, but for more general usage you can't
beat the (free) mxDateTime module. See
"David Kirtley" <dkirtley at panam.edu> wrote in message
news:1ca31bad.0106271243.58052b7 at posting.google.com...
> > Lenny Self wrote:
> >>> SNIP <<<
> > import string
> > datestamp1 = line1[string.find(line1,"[") + 1:string.rfind(line1,"]")]
> > datestamp2 = line2[string.find(line2,"[") + 1:string.rfind(line2,"]")]
> > # Compare the date stamps and return appropriate value
> > if datestamp1 < datestamp2:
> > return -1
> > elif datestamp2 < datestamp1:
> > return 1
> > else:
> > return 0
> > Writing sorted list to new file
> That won't work like you think it will. That will do a lexographic
> comparison (alphabetical) that will partially work but not when they
> are on boundiries (worst case example: Jan < Apr works but Jul < Aug
> The way to handle it is to convert it to a numeric time value:
> for the default Apache log format:: 00/Mon/0000/00:00:00
> from time import *
> timestamp = "00/Mon/0000/00:00:00" #<- insert a real timestamp here.
> myTime = mktime(strptime(timestamp,"%d/%b/%Y:%H:%M:%S"))
> Now you can use myTime to make the comparison.
> David Kirtley
More information about the Python-list