2010-03-26 6 views
3

안녕하세요. 파일의 총 행 수를 얻으려면 어떻게해야합니까 (루프를 사용하지 않으려 고합니다). 나는 CSV 파일을 읽고있다.레일 - 파일의 행 수

예 1

CSV.open('clients.csv', 'r') 

예 2

FasterCSV.foreach('clients.csv') 

들으.

답변

7

파일의 크기는 얼마입니까?

이 옵션은 전체 파일을 메모리에로드하므로 크기/메모리 관련 문제가있는 경우 작동하지 않을 수 있습니다.

numrows = FasterCSV.read('clients.csv').size 

이 옵션은 루비의 내장 CSV 모듈을 사용합니다.이 모듈은 매우 느리지 만 작동합니다. 또한 전체 파일을 메모리로로드 : 배열의

numrows = CSV.readlines('clients.csv').size 

FasterCSV.readCSV.readlines 모두 반환 배열을, 당신은 당신이 결과를 원하는 배열 마법을 사용할 수 있습니다.

+0

Ruby 1.9는 FasterCSV를 지원하지 않습니다 –

+0

그러면 Ruby 1.9에서 다른 솔루션이 더 유용 할 수 있다고 생각합니다. 느리지 만 작동합니다 :) 헤드 업에 감사드립니다. – Roadmaster

+1

@VP 나는 그것이 옳지 않다고 생각한다. 실제로 더 빠른 CSV 1.9의 csv : http://stackoverflow.com/a/6090840/603309 – Kjellski