【问题标题】:How to delete the entire row in the csv file in ruby 1.9.2如何在 ruby​​ 1.9.2 中删除 csv 文件中的整行
【发布时间】:2012-05-22 06:47:24
【问题描述】:

我正在构建一个应用程序,它从 CSV 文件中读取数据并将这些数据存储到数据库中。我从第 3 方获得的 csv 文件包含第一行中的标题,在将这些数据推送到数据库之前必须将其删除。如何以编程方式删除第一行,然后仅将值或数据推送到数据库。我使用的是 ruby​​ 1.9.2 版本,所以我不必使用“fastercsv”。我正在使用标准的 CSV 库。

请帮帮我

【问题讨论】:

  • 为什么不跳过第一行?
  • @Hck 如何跳过第一行?

标签: ruby csv


【解决方案1】:

当你这样做时:

CSV.open(filename, :headers => true) do |row|
  # it will use the first line as headers. now you can do:
  row['my_header_value']
end

【讨论】:

    【解决方案2】:

    您可以使用以下命令一次获取所有行:

    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。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    相关资源
    最近更新 更多