On 26/10/2018 12:33, Asad wrote: > Hi , > > Yes i have the code :
It woiyukld help us to help you if you provided some clues as to what it was doing. A good start would be some comments - especially around the regexes. Don't make us parse them without some idea of what you are expecting. Also moremeaningful variable names than h,j,k etc > import re > import datetime > from datetime import timedelta You don't appear to use timedelta? > Header = "*****************************************************" > > f3 = open ( r"D:\QI\logA.txt", 'r' ) > string = f3.read () > regex = re.compile ( "\n" ) > st = regex.sub ( " ", string ) I suspect regular string methods would be simpler here. > st1 = st.split ( " " ) > > if re.search ('ERR-1:', st ): > x = re.findall ( "(\w{3})\s+([0-9]{2})\s+(\d+):(\d+):(\d+)\s+(\d+)", st ) > j = x[0][0] + " "+ x[0][1]+" " + x[0][2] +":"+ x[0][3]+":" + > x[0][4]+" " + x[0][5] > h = x[1][0] + " "+ x[1][1]+" "+ x[1][2] +":" + x[1][3] +":"+ > x[1][4] +" "+ x[1][5] I'm not sure what exactly this is doing, but I suspect datetime.strftime might do it better. > y = datetime.datetime.strptime ( j, '%b %d %H:%M:%S %Y' ) > print y > k = datetime.datetime.strptime ( h, '%b %d %H:%M:%S %Y' ) > print k > > f4 = open ( r"D:\QI\logC11.txt", 'r' ) > > string1 = f4.read () > reg = re.compile ( "\n" ) > newst = reg.sub ( " ", string1 ) > newst1 = newst.split ( " " ) > > if re.search ( "ERR-2", newst ): > a = re.findall ( "\d\d/\d\d/\d\d\s[012][0-9]:[0-5][0-9]:[0-5][0-9]", > newst ) > for i in range ( len ( a ) ): Would this not be simpler as for result in a: and use result instead of a[i] > newtime = datetime.datetime.strptime ( a[i], '%m/%d/%y %H:%M:%S' ) > if newtime > y and newtime < k: You should be able to write this as if y < newtime < k: > print "Install patch1" > > if re.search ( "ERR-3", newst ): > a = re.findall ( "\d\d/\d\d/\d\d\s[012][0-9]:[0-5][0-9]:[0-5][0-9]", > newst ) > for i in range ( len ( a ) ): > newtime = datetime.datetime.strptime ( a[i], '%m/%d/%y %H:%M:%S' ) > if newtime > y and newtime < k: > print newtime, y, k > print "Install patch2" > > ============================================================================================== > > output i get : Can you show us the full output? It should start with your header line? > *Install patch1 - wrong solution > 2018-10-22 10:21:23 2018-10-22 10:21:15 2018-10-22 10:21:25 > Install patch2 - correct solution * > > > *It should have only searched between timestamps **2018-10-22 10:21:15 > 2018-10-22 10:21:25* Going by the above output that's exactly what it did? And it found 2018-10-22 10:21:23 I'm not clear what you expected. -- Alan G Author of the Learn to Program web site http://www.alan-g.me.uk/ http://www.amazon.com/author/alan_gauld Follow my photo-blog on Flickr at: http://www.flickr.com/photos/alangauldphotos _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor