On 2018-10-23 16:18, Asad wrote:
Hi All ,

           I have just playing with python , I am stuck for the following
problem :

file1 :
Patching tool version 12.1.0.2.0 Production on Fri Feb 23 01:10:28 2018

Bootstrapping registry and package to current versions...done
statement ERR-2001: table is corrupt check for cause

could not determine the current status.

Patching tool version 12.1.0.2.0 Production on Fri Feb 23 01:10:58 2018

file2 :

  LOG file opened at 02/03/18 01:11:05

DUP-05004:   statement1
DUP-05007:   statement2


  LOG file opened at 02/03/18 01:11:14

DUP-05004:   statement1

DUP-05007:   statement2


  LOG file opened at 02/23/18 01:10:33

DUP-05004:   statement1

DUP-05007:   statement2

I need to look for the ERR-2001 in file1 if it matches then go to file2 and
print the message nearest to the timestamp found in file1 within two
minutes of range .


1) What regex I use get the timestamp from file 1 and then file 2  ?

2) How to I acheive
  so in this case file1 Start:  Fri Feb 23 01:10:28 2018
                    End time :  Fri Feb 23 01:10:58 2018
check in file 2 nearest to file1 end time :     02/23/18 01:10:33

Thanks in advance,

The datetime in file1 matches this regex:

\b\w{3} \w{3} \d+ \d{2}:\d{2}:\d{2} \d{4}\b

When you have the datetime string, you need to parse it with datetime.datetime.strptime; that needs to be given the format that describes the datetime:

%a %b %d %H:%M:%S %Y

The datetime in file2 matches this regex:

\b\d{2}/\d{2}/\d{2} \d{2}:\d{2}:\d{2}\b

and the format for datetime.datetime.strptime is:

%m/%d/%y %H:%M:%S

Finding the nearest date/time is simple: calculate the difference between the 2 datetimes (which will return a datetime.timedelta) and pick the one with the smallest absolute (abs(...)) value of its .total_seconds() method.

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to