Ho un file gzip e attualmente ho letto in questo modo:Come si legge un file gzip riga per riga?
infile = open("file.log.gz")
gz = Zlib::GzipReader.new(infile)
output = gz.read
puts result
penso che questo converte il file in una stringa, ma vorrei leggerlo riga per riga.
Quello che voglio ottenere è che il file ha alcuni messaggi di avviso con un po 'di spazzatura, voglio grep quei messaggi di avviso e poi scriverli in un altro file. Ma alcuni messaggi di avvertimento vengono ripetuti, quindi devo assicurarmi che li annulli solo una volta. Quindi la lettura riga per riga mi aiuterebbe.
Chiude automaticamente il file al termine della lettura? – Rohit
Sì e no - se GzipReader funziona direttamente su un file, potrebbe essere necessario chiuderlo. Ma in questo caso ho pensato che il metodo 'open' aprisse il file e quindi dovessi chiudere lo stream IO 'inline'. – Tigraine
Wow !! 4 anni dopo e sto ancora rispondendo ai commenti sulla tua risposta. Ora questa è la dedica !! Grazie ancora. – Rohit