FasterCSV是否在读取时打开整个文件?

时间:2012-08-03 17:32:15

标签: ruby file-io csv fastercsv

在这样的情况下:

FasterCSV.parse(uploaded_file) do |row|
  @rows[i] = row
  i += 1
  break row if i == 10
end

FasterCSV是读取整个文件还是前10行?我想显示CSV文件的前几行,但不想将整个文件存储在内存中。这可能吗?

1 个答案:

答案 0 :(得分:1)

您可以使用FasterCSV一次一行地解析文件。

来自FasterCSV documentation

A Line at a Time
  FasterCSV.foreach("path/to/file.csv") do |row|
    # use row here...
  end

All at Once
  arr_of_arrs = FasterCSV.read("path/to/file.csv")

(注意:在您的问题中,您使用的是FasterCSV.parse,它仅用于将字符串解析为CSV。因为您要使用文件,请查看.foreach和.parse方法,它们将处理打开和扫描给你的文件。)。