我正在構建一個應用程序,它從CSV文件中讀取數據並將這些數據存儲到數據庫中。我從第三方獲得的csv文件由第一行中的頭部組成,在將這些數據推入數據庫之前必須先將其刪除。我如何刪除第一行語法,然後只推送值或數據到數據庫。我使用的是Ruby 1.9.2版本,所以我不必使用「fastercsv」。我正在使用標準的CSV庫。如何在ruby中刪除csv文件中的整行1.9.2
請幫我出
我正在構建一個應用程序,它從CSV文件中讀取數據並將這些數據存儲到數據庫中。我從第三方獲得的csv文件由第一行中的頭部組成,在將這些數據推入數據庫之前必須先將其刪除。我如何刪除第一行語法,然後只推送值或數據到數據庫。我使用的是Ruby 1.9.2版本,所以我不必使用「fastercsv」。我正在使用標準的CSV庫。如何在ruby中刪除csv文件中的整行1.9.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的大小。 – Vizkrig
當你這樣做:
CSV.open(filename, :headers => true) do |row|
# it will use the first line as headers. now you can do:
row['my_header_value']
end
你爲什麼不只是跳過第一行? – Hck
@Hck如何跳過第一行? –