2012-05-22 55 views
4

我正在構建一個應用程序,它從CSV文件中讀取數據並將這些數據存儲到數據庫中。我從第三方獲得的csv文件由第一行中的頭部組成,在將這些數據推入數據庫之前必須先將其刪除。我如何刪除第一行語法,然後只推送值或數據到數據庫。我使用的是Ruby 1.9.2版本,所以我不必使用「fastercsv」。我正在使用標準的CSV庫。如何在ruby中刪除csv文件中的整行1.9.2

請幫我出

+0

你爲什麼不只是跳過第一行? – Hck

+0

@Hck如何跳過第一行? –

回答

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 
+0

將所有行提取到內存中並不總是很好。我擁有的CSV至少有400mb的大小。 – Vizkrig

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