如何在Ruby 1.9.2中删除CSV文件中的整行

4
我正在开发一个应用程序,该程序从CSV文件中读取数据并将这些数据存储到数据库中。我从第三方获得的CSV文件在第一行包含标题,必须在将这些数据推送到数据库之前删除该行。如何通过编程方式删除第一行,然后仅将值或数据推送到数据库中。我正在使用ruby 1.9.2版本,因此不必使用“fastercsv”。我正在使用标准的CSV库。
请帮忙解决。

为什么不直接跳过第一行呢? - Hck
@Hck 我如何跳过第一行? - Jeevan Dongre
2个回答

8
当你执行以下操作时:
CSV.open(filename, :headers => true) do |row|
  # it will use the first line as headers. now you can do:
  row['my_header_value']
end

5
您可以使用以下方式一次性获取所有行:
arr_of_arrs = CSV.read("path/to/file.csv")

然后您可以使用 arr_of_arrs.drop(1) 来删除标题。 或者您可以使用 arr_of_arrs.each_with_index 跳过第一行(标题),像这样:

arr_of_arrs.each_with_index do |e, i|
  next if i == 0

  #process each row here
end

将所有行都加载到内存中并不总是好的选择。我手头的CSV文件大小至少为400MB。 - vishless

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接