我目前有以下代码来使用标准 csv 库解析 csv 文件
@parsed_file=CSV::Reader.parse(params[:dump][:file])
@parsed_file.each do |row|
#some code
end
我想将其移动到更快的 csv 以提高速度。有谁知道 FasterCSV 的上述内容?
谢谢
我目前有以下代码来使用标准 csv 库解析 csv 文件
@parsed_file=CSV::Reader.parse(params[:dump][:file])
@parsed_file.each do |row|
#some code
end
我想将其移动到更快的 csv 以提高速度。有谁知道 FasterCSV 的上述内容?
谢谢
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
应该可以正常工作。
要使用文件路径(如您所见)执行此操作:
FasterCSV.read(params[:dump][:file])
您可以查看FasterCSV 文档以了解其他方法(例如,在解析时处理每一行,或者从字符串而不是文件中读取)。