Ruby on rails 在ruby中指定foreach枚举数的起点

Ruby on rails 在ruby中指定foreach枚举数的起点,ruby-on-rails,ruby,enumeration,Ruby On Rails,Ruby,Enumeration,我有一个rake文件,它从外部CSV文件中提取数据,并通过以下方式枚举: CSV.foreach(file, :headers => true) do |row| 在ruby中,在电子表格中指定起始点最有效的方法是什么 :headers=>true允许我从第二行开始导入,但是如果我想从第20行开始呢 Ruby枚举数包含一个将跳过第一个n项的 未传递块时,CSV.foreach返回枚举数 你可以用 CSV.foreach(file, :headers => true).drop(20

我有一个rake文件,它从外部CSV文件中提取数据,并通过以下方式枚举:

CSV.foreach(file, :headers => true) do |row|
在ruby中,在电子表格中指定起始点最有效的方法是什么


:headers=>true允许我从第二行开始导入,但是如果我想从第20行开始呢

Ruby枚举数包含一个将跳过第一个
n
项的

未传递块时,
CSV.foreach
返回枚举数

你可以用

CSV.foreach(file, :headers => true).drop(20).each do |row|
这将跳过前20个数据行(标题行不算作这20个数据行中的一个)

使用.drop(#要忽略的行):


CSV.open(file,:headers=>true)。drop(20)。每个do | row |

唯一的问题是它仍然在内存中加载所有文件。不管怎样,这是个好办法。是的,我注意到了。想不出它返回数组而不是另一个枚举数的好理由也请参见:谢谢你的帮助。我能够让它与CSV.open(文件,:headers=>true).drop(20).每个do |行|一起工作。请编辑您的答案以显示“.open”而不是“.foreach”,我将选择正确答案。再次谢谢。哎呀,我无意中否决了你的答案。我不是故意的。在修改问题之前无法撤消该操作!我会看着它,把它修好。那么快吗?