0

我目前有以下代码来使用标准 csv 库解析 csv 文件

@parsed_file=CSV::Reader.parse(params[:dump][:file])
@parsed_file.each  do |row|
#some code
end

我想将其移动到更快的 csv 以提高速度。有谁知道 FasterCSV 的上述内容?

谢谢

4

2 回答 2

2
CSV::Reader.parse(File.open('file.csv')){|row| puts row} 
or
CSV::Reader.parse("some, content\nanother, content"){|row| puts row} 

FasterCSV.parse(File.open('file.csv')){|row| puts row}
or
FasterCSV.parse("some, content\nanother, content"){|row| puts row}

是等价的。

FasterCSV.read('filename') 

将文件名作为参数并从文件中读取和解析数据,但是当您在参数中传递数据时,您正在转储文件内容

@parsed_file = FasterCSV.parse(params[:dump][:file])
@parsed_file.each do |row| 
  puts row
  # and do some operations
end

应该可以正常工作。

于 2010-02-15T06:41:02.477 回答
1

要使用文件路径(如您所见)执行此操作:

FasterCSV.read(params[:dump][:file])

您可以查看FasterCSV 文档以了解其他方法(例如,在解析时处理每一行,或者从字符串而不是文件中读取)。

于 2010-02-15T06:36:49.770 回答