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

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()
py.user.next
>>> 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'
>>>
ZlobnayaPechenka
py.user.next

Спасибо огромное, то что надо!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB