0

ここに私のコードがあります: ファイルを読み取るスクリプトがありますが、私のファイルではすべての行が似ているわけではなく、I DOC O:.

if 条件を試してみましたが、正規表現が一致しない行がある場合はまだ機能しません。

#!/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()

そして、ここに私のファイルのいくつかの行の例を示します.1行目と4行目が必要です..:

01:09:25.258 mta         Messages       I Doc O:NVS:SMTP/alarm@yyy.xx R:NVS:SMS/+654811 mid:6261
01:09:41.965 mta         Messages       I Rep O:NVS:SMTP/alarmes.techniques@xxx.de 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/alarm@xxxx.en R:NVS:SMS/+654646 mid:6262
08:14:30.630 mta         Messages       I Rep O:NVS:SMTP/alarm@azea.er R:NVS:SMS/+33688704859 mid:6262
08:14:30.630 mta         Messages       I Rep 6262 OK, Accepted (ID: 28)
4

1 に答える 1