Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 8, 2015 14:07:20

ZlobnayaPechenka
Зарегистрирован: 2015-05-12
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Парсинг лога по подстроке

Господа питоноводы, туплю несчадно. Задача- есть ФТП лог, в котором проскальзывают имена файлов. Все имена имеют одну маску. Необходимо выцепить эти имена и занести в базу. Формат записи такой

05/08/2015 16:40:35.108 GMT+04:00INFORMATIVE: File С:\example\ABC123 has been sent via FTP to /FTPdir/ABC123 on remote host 127.0.0.1

Занести в базу не проблема, проблема выделить именно имена файлов. Мучаюсь с регулярками, пока не получается.

fileone = open('C:/FTP.log')
for i in fileone.readlines():
    if 'on remote host' in i:
        regular = re.sub(r'\w+//ABC', 'ABC', i)
        files.append(regular)
        print files
fileone.close()

Офлайн

#2 Июнь 8, 2015 15:04:40

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10016
Репутация: +  857  -
Профиль   Отправить e-mail  

Парсинг лога по подстроке

>>> import re
>>> 
>>> s = '05/08/2015 16:40:35.108 GMT+04:00INFORMATIVE: File С:\example\ABC123 has been sent via FTP to /FTPdir/ABC123 on remote host 127.0.0.1'
>>> 
>>> def f(s):
...     pat = r'File (.*\\)?(.*) has been sent'
...     match = re.search(pat, s)
...     return match and match.group(2)
... 
>>> f(s)
'ABC123'
>>>



Отредактировано py.user.next (Июнь 8, 2015 15:16:04)

Офлайн

#3 Июнь 8, 2015 15:46:59

ZlobnayaPechenka
Зарегистрирован: 2015-05-12
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Парсинг лога по подстроке

py.user.next

Спасибо огромное, то что надо!

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version