【问题标题】:Ruby on Rails Moving from CSV to FasterCSVRuby on Rails 从 CSV 迁移到 FasterCSV
【发布时间】:2010-02-15 06:12:24
【问题描述】:

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

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

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

谢谢

【问题讨论】:

    标签: ruby-on-rails csv fastercsv


    【解决方案1】:
    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
    

    应该可以正常工作。

    【讨论】:

      【解决方案2】:

      使用文件路径(如您所见):

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

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

      【讨论】:

        猜你喜欢
        • 2015-04-09
        • 1970-01-01
        • 1970-01-01
        • 2013-11-03
        • 2019-12-24
        • 1970-01-01
        • 1970-01-01
        • 2012-11-11
        • 1970-01-01
        相关资源
        最近更新 更多