如何使用内置 ruby csv 读取 csv 文件的前 5 行

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

我的应用程序允许用户上传最大 50MB 的 csv 文件。 我想向用户展示上传文件的预览。 我可以只读取 csv 的前 5 行吗? 我目前正在使用 CSV.read 函数,显然这会读取整个文件并且速度很慢。

CSV#foreach returns an enumerable, so just call Enumerable#take就可以了:

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

我认为读取固定数量记录的最简单方法是:

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