2014-10-25 11 views

답변

3

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 

루비 1.9.3 이것은 어떤 블록이 지정되지 않은 경우 Enumerator을 반환 doesen't foreach 때문에 작동하지 않을 것입니다. 코드는 다음과 같이 수정할 수 있습니다 :

CSV.to_enum(:foreach, file, headers: true).with_index(1) do |row, rowno| 
    # ... 
end 
+0

'with_index' 메소드로'IOError : closed stream'을 얻었습니다. – cqcn1991

+0

Ruby 1.9.3을 사용하고 있습니까? – toro2k

+0

예 ... 그래서 이것은 루비 버전의 문제입니까? – cqcn1991