2016-04-26 6 views
0

У меня есть файл журнала, в формате .txtпрочитать файл журнала и найти конкретные детали

Теперь я должен найти запись в журнале между конкретными сроками использования питона.

Я пробовал использовать итерацию и диапазон.

Так что любые предложения принимаются.

Log-файл выглядит следующим образом:

2015-12-15 00: 51: 01904 INFO restserver.py 113 V ................. ....... и т. д.

поэтому найдите запись в журнале только с определенными временными рамками.

+1

Опубликовать фрагмент кода, который сделал и также данные текстовой файл. –

+0

Ваш вопрос непонятен, поскольку мы не знаем, в каком формате находятся ваши данные. Пожалуйста, укажите пример ввода и то, что ваш запрос должен выглядеть в этом случае. –

+0

Все еще не хватает деталей.Как насчет того, чтобы добавить дополнительные строки строк и показать нам, как вы хотите искать с использованием временного интервала? Покажите ожидаемый результат для одной ситуации. –

ответ

0

Если вы читаете весь файл журнала в строку, то вы можете использовать это:

import re 
str = '2015-12-15 00:51:01,904 INFO restserver.py 113 .... 2015-12-16 00:51:01,904 INFO restserver.py 114 ....' 
date1="2015-12-15 00:51:01" 
date2="2015-12-16 00:51:01" 
result = re.search(date1+'(.*)'+date2, str) 
print result.group(1) 

Выход: , 904 INFO restserver.py 113 ....

Отредактированный код для случая использования (О.П.):

#!/usr/bin/env python 
#Import the regular expression 
import re 
#Set the begining time and name it as starttime 
starttime="03:00:00" 
#Set the ending time and name it as endtime 
endtime="03:59:59" 
#Specify the time format 
time_re = re.compile(r'(\d+:\d+:\d+)') 
#Using the condition with open("abc.log", "r") as fh: 
for line in fh.readlines(): 
    match = time_re.search(line) 
    if match: 
     matchDate = match.group(1) 
     if matchDate >= starttime and matchDate <= endtime: 
      print match.string.strip() 
+0

Спасибо Ani Menon: Я, наконец, получил его: Код ниже: #!/Usr/bin/env python #Используйте регулярное выражение import re # Установите время начала и назовите его как время запускаstarttime = "03: 00:00 " # Установите время окончания и назовите его как время окончания endtime =" 03:59:59 " # Укажите формат времени time_re = re.compile (r '(\ d +: \ d +: \ d +) «) # Используя условие с открытым ("abc.log", "г"), как ФЕ: для линии в fh.readlines(): матча = time_re.search (линия) в случае совпадение: matchDate = match.group (1) , если matchDate> = время начала и matchDate <= конечное время: print match.string.strip() –

0

/USR/бен/окр питон

Импорт регулярное выражение

импорта повторно

печати "Задача Begins"

Print "Begin время в 03:00:00"

Set время начала и называть его стартом

starttime = "03:00:00"

печать "Время End находится в 03:59:59"

Установите время окончания и назовите его EndTime

EndTime = "3:59:59"

Укажите формат времени

time_re = re.compile (г '(\ d +: \ d +: \ d +)')

Используя условие

с открытым ("abc.log", "г"), как ФЕ:

for line in fh.readlines(): 
     match = time_re.search(line) 
     if match: 
      matchDate = match.group(1) 
      if matchDate >= starttime and matchDate <= endtime: 
       print match.string.strip() 

печати «Задача выполнена»

Смежные вопросы