0

在这样的情况下:

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

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

4

1 回答 1

1

您可以使用 FasterCSV 逐行解析文件。

来自FasterCSV 文档

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 方法,它们将处理打开和扫描文件以查找你。)。

于 2012-08-03T17:54:33.317 回答