[Python] script per file di log ( linee guida)

Andrea Spadaccini a.spadaccini a catania.linux.it
Gio 18 Gen 2007 11:54:36 CET


Ciao Salvatore,

> Ciao a tutti
> vorrei fare un script che legga un file di log 
> e fino a qua ci arrivo 
> 
> f = open("path_del_file/nomefile.log", "r")
> 
> 
> nel file di log c'e' una data sempre allo stesso posto come faccio a
> leggerla mi servirebbe una cosa del tipo string tokenizer di java
> oppure leggere la data ultima modifica del log  

Se conosci la posizione esatta della data, secondo me non ti conviene
tokenizzare la stringa. Per fare qualcosa del genere, si utilizza
split():

>>> "python rulez".split()
['python', 'rulez']
>>>

Invece io prenderei dalla riga la stringa che corrisponde alla data,
tramite la tecnica dello slicing:

>>> stringa = "Oggi è il 18/01/2007"
>>> stringa[11:21]
'18/01/2007'

Magari di questo fai lo split:

>>> date_elements = stringa[11:21].split('/')
>>> print date_elements
['18', '01', '2007']

E lo giri, per farlo digerire a datetime.datetime (che prende i
parametri nell'ordine anno, mese, giorno).

>>> import datetime
>>> date_elements.reverse()

Ed infine, utilizzando list comprehension e "srotolamento", passi la
lista al costruttore dell'oggetto datetime:

>>> aday = datetime.datetime(*[int(x) for x in date_elements])

> poi la voglio confrontare con la data corrente e se non coincide
> scrivere un altro file di log .

Con il metodo now() di datetime.datetime ottieni un oggetto datetime
che è relativo all'istante in cui lo crei, e che quindi puoi
agevolmente utilizzare per i confronti.

HTH,

-- 
[ Andrea Spadaccini - a.k.a. Lupino - from Catania - ICQ #: 91528290 ]
[ GPG ID: 5D41ABF0 - key on keyservers - Gentoo GNU / Linux - 2.6.18 ]
[ Linux Registered User 313388 - @: a.spadaccini(at)catania.linux.it ]
[      Make everything as simple as possible, but not simpler.       ]
-------------- parte successiva --------------
Un allegato non testuale è stato rimosso....
Nome:        signature.asc
Tipo:        application/pgp-signature
Dimensione:  189 bytes
Descrizione: non disponibile
Url:         http://lists.python.it/pipermail/python/attachments/20070118/1d78b021/signature-0001.pgp


Maggiori informazioni sulla lista Python