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

时间:2018-09-07 05:40:50

标签: ruby-on-rails ruby csv ruby-csv

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

2 个答案:

答案 0 :(得分:5)

CSV#foreach返回一个可枚举的对象,因此只需对其调用Enumerable#take

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

答案 1 :(得分:0)

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

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