Tôi có một file gzip và hiện nay tôi đọc nó như thế này:Làm cách nào để đọc một dòng tệp gzip theo dòng?
infile = open("file.log.gz")
gz = Zlib::GzipReader.new(infile)
output = gz.read
puts result
Tôi nghĩ rằng đây chuyển đổi tập tin vào một chuỗi, nhưng tôi muốn đọc nó từng dòng.
Những gì tôi muốn thực hiện là tệp có một số thông báo cảnh báo với một số rác, tôi muốn grep những thông báo cảnh báo đó và sau đó ghi chúng vào tệp khác. Tuy nhiên, một số thông điệp cảnh báo được lặp lại vì vậy tôi phải chắc chắn rằng tôi chỉ grep chúng một lần. Do đó dòng bằng cách đọc dòng sẽ giúp tôi.
Điều này có tự động đóng tệp sau khi đọc xong không? – Rohit
Có và không - nếu GzipReader hoạt động trên một tập tin trực tiếp, bạn có thể muốn đóng nó. Nhưng trong trường hợp này, tôi giả sử phương thức 'mở' mở tập tin và do đó bạn phải đóng luồng IO nội tuyến. – Tigraine
Wow !! 4 năm và vẫn trả lời bình luận về câu trả lời của bạn. Bây giờ là sự cống hiến !! Cảm ơn bạn lần nữa. – Rohit