Вот мой код: У меня есть скрипт, который читает файл, но в моем файле не все строки похожи, и я хотел бы извлекать информацию только из строк, которые есть I DOC O:
.Только строки, содержащие определенную строку и применяющие к ним regex
Я попытался с, если условиями, но он по-прежнему не работает, когда есть строки, где регулярное выражение не соответствующие:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import re
def extraire(data):
ms = re.match(r'(\S+).*?(O:\S+).*(R:\S+).*mid:(\d+)', data) # heure & mid
return {'Heure':ms.group(1), 'mid':ms.group(2),"Origine":ms.group(3),"Destination":ms.group(4)}
tableau = []
fichier = open("/home/TEST/file.log")
f = fichier.readlines()
for line in f:
if (re.findall(".*I Doc O:.*",line)):
tableau = [extraire(line) for line in f ]
print tableau
fichier.close()
А вот пример некоторых строк моего файла здесь я хочу первая и четвертая строки ..:
01:09:25.258 mta Messages I Doc O:NVS:SMTP/[email protected] R:NVS:SMS/+654811 mid:6261
01:09:41.965 mta Messages I Rep O:NVS:SMTP/[email protected] R:NVS:SMS/+455451 mid:6261
01:09:41.965 mta Messages I Rep 6261 OK, Accepted (ID: 26)
08:14:14.469 mta Messages I Doc O:NVS:SMTP/[email protected] R:NVS:SMS/+654646 mid:6262
08:14:30.630 mta Messages I Rep O:NVS:SMTP/[email protected] R:NVS:SMS/+33688704859 mid:6262
08:14:30.630 mta Messages I Rep 6262 OK, Accepted (ID: 28)
добавить '?' после вашего первого. * – pyInTheSky
Вы смешали TAB и SPACE в отступе в своем посте. Можете ли вы исправить отступы в своем сообщении, чтобы мы могли устранить эту проблему? –