在Ruby中从CSV文件获取头文件的最简单方法是什么?

我需要做的就是从CSV文件中获取标题.

file.csv是:

"A", "B", "C"  
"1", "2", "3"

我的代码是:

table = CSV.open("file.csv", :headers => true)

puts table.headers

table.each do |row|
  puts row 
end

这给了我:

true
"1", "2", "3"

我已经看了几个小时的Ruby CSV文档,这让我发疯.我确信必须有一个简单的单行程序可以将标题返回给我.有任何想法吗?

最佳答案
看起来像CSV.read将允许您访问标头方法:

headers = CSV.read("file.csv", headers: true).headers
# => ["A", "B", "C"]

以上只是CSV.open(“file.csv”,headers:true).read.headers的快捷方式.您可以尝试使用CSV.open来实现它,但由于CSV.open在您调用方法时实际上并未读取文件,因此在实际读取某些数据之前,它无法知道标题是什么.这就是为什么它只是在你的例子中返回true.读完一些数据后,最终会返回标题:

  table = CSV.open("file.csv", :headers => true)
  table.headers
  # => true
  table.read
  # => #<CSV::Table mode:col_or_row row_count:2>
  table.headers
  # => ["A", "B", "C"]

转载注明原文:在Ruby中从CSV文件获取头文件的最简单方法是什么? - 代码日志