尽管您的示例显示了 ZipFile,但您实际上是在问一个 CSV 问题。首先,您应该检查http://www.ruby-doc.org/stdlib-2.0/libdoc/csv/rdoc/CSV.html中的文档
您会发现,如果您使用 :headers => true 选项解析数据,您将获得一个CSV::table
知道如何提取数据列的对象,如下所示。(出于显而易见的原因,我不会这样编码——这只是示例。)
require 'zip'
require 'csv'
csv_table = nil
Zip::ZipFile.foreach("x.csv.zip") do |entry|
istream = entry.get_input_stream
data = istream.read
csv_table = CSV.parse(data, :col_sep => " ", :headers => true)
end
使用您提供的数据,我们需要 `col_sep => " " 因为您使用空格作为列分隔符。但现在我们可以这样做:
>> csv_table["NAME"] # extract the NAME column
=> ["NAME1", "NAME2"]