ruby-on-rails – 计算CSV文件的长度(行数)?
发布时间:2020-12-16 20:13:07 所属栏目:百科 来源:网络整理
导读:我有一个表单(Rails),它允许我使用file_field加载.csv文件. 在视图中: % form_for(:upcsv,:html = {:multipart = true}) do |f| % table tr td%= f.label("File:") %/td td%= f.file_field(:filename) %/td /tr /table %= f.submit("Submit") % % end % 点
我有一个表单(Rails),它允许我使用file_field加载.csv文件.
在视图中: <% form_for(:upcsv,:html => {:multipart => true}) do |f| %> <table> <tr> <td><%= f.label("File:") %></td> <td><%= f.file_field(:filename) %></td> </tr> </table> <%= f.submit("Submit") %> <% end %> 点击提交将我重定向到另一个页面(create.html.erb).该文件加载正常,我能够读取的内容,在这第二页.我试图在第二页显示.csv文件中的行数. 我的控制器(半伪代码): class UpcsvController < ApplicationController def index end def create file = params[:upcsv][:filename] ... #params[:upcsv][:file_length] = file.length # Show number of lines in the file #params[:upcsv][:file_length] = file.size ... end end 当我的文件只包含7行时,file.length和file.size都会返回’91’.从我阅读的Rails文档中,一旦点击Submit按钮,Rails创建一个上传文件的临时文件,params [:upcsv] [:filename]包含temp / uploaded文件的内容,而不是文件.而且我不知道如何提取原始文件中的行数.获取文件中行数的正确方法是什么? 我的create.html.erb: <table> <tr> <td>File length:</td> <td><%= params[:upcsv][:file_length] %></td> </tr> </table> 我在Rails真的很新(上周刚刚开始),所以请忍受我的愚蠢的问题. 谢谢! 更新:显然,我的文件中的’91’是个人字符(包括回车)的数量.我的文件中的每一行都有12位数字1换行= 13. 91/13 = 7. 解决方法
另一种读取行数的方式是
file.readlines.size (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |