PDA

View Full Version : [Python] Leggere ultima riga di un file


killercode
24-08-2013, 13:52
Esiste un modo semplice, in python ovviamente, che non preveda di:
- iterare riga per riga dall'inizio
- usare comandi esterni come tail
per leggere le ultime n righe di un file la cui dimensione in byte (delle righe) è sconosciuta?

Xfree
24-08-2013, 14:31
Se il file è di piccole dimensioni potresti usare il readlines() e poi usare l'indice -1 per prendere l'ultima riga.
Se si comincia a fare grande, penso sia preferibile usare il seek ed il read.
Questa risposta mi pare interessante per le tue necessità : Get last n lines of a file with Python, similar to tail (http://stackoverflow.com/questions/136168/get-last-n-lines-of-a-file-with-python-similar-to-tail).

killercode
24-08-2013, 14:49
Se il file è di piccole dimensioni potresti usare il readlines() e poi usare l'indice -1 per prendere l'ultima riga.
Se si comincia a fare grande, penso sia preferibile usare il seek ed il read.
Questa risposta mi pare interessante per le tue necessità : Get last n lines of a file with Python, similar to tail (http://stackoverflow.com/questions/136168/get-last-n-lines-of-a-file-with-python-similar-to-tail).

Readlines() no, metti che devo leggere il signore degli anelli, mi scoppia il computer :D
A quanto pare l'unica soluzione è contare gli EOL partendo dal fondo.