[Python] Leggere file stream

Manlio Perillo manlio.perillo a gmail.com
Mer 7 Dic 2016 19:43:45 CET


2016-12-07 17:17 GMT+01:00 Lorenzo Mainardi <lormayna a gmail.com>:
>> Message: 7
>> Date: Wed, 7 Dec 2016 16:02:10 +0100
>> From: Manlio Perillo <manlio.perillo a gmail.com>
>>
>> Scrive sempre sullo stesso file, che quindi cresce indefinitivamente?
>
>
> Sì, lo posso ruotare ogni ora od ogni giorno (a seconda di come mi fa
> comodo).
>

In questo caso puoi fare quello che fa `tail -f`.

Una veloce ricerca con "python read logfile realtime" produce:
http://stackoverflow.com/questions/3290292/read-from-a-log-file-as-its-being-written-using-python
http://stackoverflow.com/questions/11908919/python-parsing-log-file-to-extract-events-in-real-time

>
>>
>>
>> > Vorrei parsare il file in tempo reale riga per
>> > riga e poi inserire i dati in un DB.
>> > Come posso fare?
>>
>> Non mi sembra troppo complesso, cosa hai provato a fare?
>
>
>
> Per ora niente, volevo capire se con python potevo "seguire" un file per poi
> parsarle.

Come detto, "seguire" un file in tempo reale non è un problema.

> Le linee sono raggruppate per ogni autenticazione e separate da
> una linea bianca. Dovrò quindi aggregarle per ogni autenticazione, infilarle
> in un dizionario, fare delle elaborazioni e buttarle nel DB.
>
>>
>>
>> > Ho letto un po' di documentazione del modulo io nella
>> > libreria standard, ma non so se è lo strumento adatto.
>> >
>>
>> Non ti basta leggere il file linea per linea, parsare (eventualmente)
>> i dati e inviarli tramite un INSERT nel database?
>
>
> La mia unica paura è che non ce la possa fare a stargli dietro (il file è
> circa 1 milione di righe al giorno).
>

Il collo di bottiglia dovrebbe essere l'I/O, in particolare il
database, quindi se non riesci a stargli dietro in Python
probabilmente non ci riuscirai nemmeno se riscrivi il programma in C.
Ma con una semplice bozza dovresti capire se la cosa è fattibile.

Che database devi usare?


Ciao  Manlio


Maggiori informazioni sulla lista Python