Yakitate
Yakitate

Reputation: 81

how to read first 5 lines of csv file using built in ruby csv

My application lets user to upload csv file with maximum of 50MB. I wanted to show the user the preview of the uploaded file. Can I read only the first 5 lines of csv? I am currently using CSV.read function, obviously this will read the entire file and is slow.

Upvotes: 3

Views: 3457

Answers (2)

John Baker
John Baker

Reputation: 2398

The simplest ways to read a fixed number of records for my opinion would be:

preview_data = CSV.readlines(csv_path, headers: false)[0,5]

Upvotes: 0

Aleksei Matiushkin
Aleksei Matiushkin

Reputation: 120990

CSV#foreach returns an enumerable, so just call Enumerable#take on it:

csv_preview_data = CSV.foreach(csv_path, headers: false).take(5)

Upvotes: 16

Related Questions