2010-09-02 3 views
0

je dois changer les horodatages dans un fichier journal de liaison parce que la moitié d'entre eux sont incorrects maintenant que je l'ai mis à jour l'heure système ...horodatage de modification dans le fichier journal de liaison

chaque ligne dans le fichier suit ce format:

04-Aug-2010 07:32:31.416 client 10.0.0.1#00000: query: google.com IN A + (10.0.0.1) 

tous les horodatages sont sortis par 8 heures. c'est ce que j'ai jusqu'à présent:

#!/usr/bin/python 
from time import strftime, strptime 

f = open("query.log","r") 
d = f.readlines() 

i = 0 
while not d[i].startswith("20-Aug"): 
    print strftime('%d-%b-%Y %H:%M:%S', strptime(d[i].split(".")[0], '%d-%b-%Y %H:%M:%S')) 
    i+=1 

des idées seraient appréciées !!

Répondre

0
from datetime import datetime, timedelta 

tfmt = "%d-%b-%Y %H" 
tfmtlen = 14 

def changestamp(line, **kwargs): 
    linetime = datetime.strptime(line[:tfmtlen],tfmt) 
    linetime += timedelta(**kwargs) 

    return linetime.strftime(tfmt) + line[tfmtlen:]  

Sortie:

>>> line = "04-Aug-2010 07:32:31.416 client 10.0.0.1#00000: query: google.c... 
>>> changestamp(line, hours=8) 
'04-Aug-2010 15:32:31.416 client 10.0.0.1#00000: query: google.com IN A + (... 
>>> changestamp(line, hours=-8) 
'03-Aug-2010 23:32:31.416 client 10.0.0.1#00000: query: google.com IN A + (... 
>>> changestamp(line, weeks=52, days=-365+1/3, hours=24) 
'04-Aug-2010 07:32:31.416 client 10.0.0.1#00000: query: google.com IN A + (... 
+0

WOW, merci! cette solution est fantastique !!! – crosswired

Questions connexes