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 を使用して、一度に 1 行ずつファイルを解析できます。

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")

(注: あなたの質問では、文字列を CSV に解析するためだけに使用される FasterCSV.parse を使用しています。ファイルを使用したいので、.foreach メソッドと .parse メソッドを見てください。あなた。)。

于 2012-08-03T17:54:33.317 に答える