首页 > 解决方案 > 使用 Zlib 在 Ruby 中读取 gz 文件。Zlib::GzipReader 只读取文件的第一行而不是所有行

问题描述

我有一个gz要解析的文件。我正在使用Zlib::GzipReader库来打开它。在控制台中,我有这样的文件:

164] pry(main)> file
=> #<Zlib::GzipReader:0x00007fadbbfa5a08>
[166] pry(main)> Zlib::GzipReader.open(file.path){|gz| print gz.read }
"Date","Connection type code","Connection id","Currency","Impressions","Campaign","Traffic source","Clicks","Cost (EUR)","Country"
=> nil

请注意,在读取文件并打印之后。我刚得到第一行,但事实上,该文件包含很多行,我想拥有它们

标签: rubyfileruby-on-rails-3gzipzlib

解决方案


您的问题与此错误有关:

Zlib::GzipReader 仅解压缩第一个连接文件。

由于仍未解决,您可以使用multiple_files_gzip_reader gem 绕过 Zlib 的限制。


推荐阅读