如何解析CSV文件的第一行?

时间:2013-08-07 20:05:26

标签: ruby-on-rails ruby

如何解析CSV文件的第一行?我想确保文件中提供了所有相应的列,但不想处理整个文件。

3 个答案:

答案 0 :(得分:19)

更好的方法是在Enumerable中使用内置的Ruby's Standard Library CSV parser支持:

headers = CSV.open('file.csv', 'r') { |csv| csv.first }

该块将导致文件自动关闭,并且调用将返回已解析标头的数组。

答案 1 :(得分:2)

我想出来并希望它可以帮助别人:

  # Return true if the headers match on file1 and file2
  def compare_csv_files(file1, file2)
    file1_first_line = CSV.parse File.open(file1) {|f| f.readline}
    file2_first_line = CSV.parse File.open(file2) {|f| f.readline}
    return file1_first_line == file2_first_line
  end

答案 2 :(得分:0)

在您的计算机上给出一个文件“foo.csv”:

# Return true if the headers match on file1 and file2
def compare_csv_files(file1, file2)
  CSV.parse( File.open(file1).first ) == CSV.parse( File.open(file2).first )
end