例如,也许我想从第5行开始:
csv_text = File.read(file)
csv = CSV.parse(csv_text, :headers => true)
csv[20..-1].each do |row|
end
是否可以从第5行写到csv[5..-1]
之类的内容?
答案 0 :(得分:4)
您可以使用CSV.foreach
方法迭代CSV和with_index
方法来计算您阅读的行数,并跳过您不想处理的行。例如:
require 'csv'
CSV.foreach(file, headers: true).with_index(1) do |row, rowno|
next if rowno < 5 # skips first four rows
# process the row
end
在Ruby 1.9.3中,如果foreach
如果没有给出阻止,则Enumerator
会返回CSV.to_enum(:foreach, file, headers: true).with_index(1) do |row, rowno|
# ...
end
,这将无法工作。代码可以像这样修改:
{{1}}