Как прочитать первые 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]