我尝试了长度方法来获取行数,并且至少需要2分钟才能返回行数。长度方法快达10 000,超过10万行时速度太慢。有没有办法在2秒内获得行数,即使文件包含超过100k行?
我使用了以下代码。
file = params[:file]
f = File.open(file.path, 'r:iso-8859-1:utf-8')
csv_file = CSV.parse(f.read, :headers => true, :converters => :all, :header_converters => lambda {|h| h.to_s.include?(' ') ? h.downcase.parameterize.underscore : h})
csv_file.length
答案 0 :(得分:0)
最终我找到了解决方案,CSV.read(file.path).length
比CSV.parse(f.read).length