Как прочитать первые 5 строк файла CSV, используя встроенный в Ruby CSV

Мое приложение позволяет пользователю загружать CSV-файл размером не более 50 МБ. Я хотел показать пользователю предварительный просмотр загруженного файла. Могу ли я прочитать только первые 5 строк CSV? В настоящее время я использую функцию CSV.read, очевидно, что это будет читать весь файл и медленно.

2 ответа

Решение

CSV#foreach возвращает перечислимое, так что просто позвоните Enumerable#take в теме:

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

На мой взгляд, простейшими способами прочитать фиксированное количество записей будет:

preview_data = CSV.readlines(csv_path, headers: false)[0,5]
Другие вопросы по тегам