草庐IT

read_csv_file

全部标签

ruby-on-rails - ruby 包安装需要 : no such files to load error

我在通过git克隆的应用程序的bundleinstall安装gems时遇到了麻烦。这是bundleinstall的输出:bundleinstall/usr/lib/ruby/vendor_ruby/bundler/rubygems_ext.rb:8:in`require':nosuchfiletoload--rubygems(LoadError)from/usr/lib/ruby/vendor_ruby/bundler/rubygems_ext.rb:8from/usr/lib/ruby/vendor_ruby/bundler.rb:11:in`require'from/usr/lib

ruby - 导轨 : how to get a file extension/postfix based on the mime type

我的问题是,RubyonRails是否具有类似于以下的功能:file_content_type=MIME::Types.type_for(file).first.content_type这将返回特定mime类型的文件扩展名或后缀?所以如果我传入'image/jpeg'函数将返回'jpg'寻找一种比编写完成相同工作的case语句更简洁的编码方式。 最佳答案 Rack::Mime具有这种能力(Rack是Rails的依赖):require'rack/mime'Rack::Mime::MIME_TYPES.invert['image/jpe

ruby - 我如何 robuSTLy 解析格式错误的 CSV?

我正在处理来自政府来源(FEC、州选民数据库等)的数据。它的格式不一致,以各种令人愉快的方式破坏了我的CSV解析器。它是外部来源和权威的。我必须解析它,我不能让它重新输入、在输入时验证等等。就是这样;我不控制输入。属性:字段包含格式错误的UTF-8(例如Foo\xABbar)行的第一个字段指定已知集中的记录类型。了解记录类型,您就会知道有多少个字段以及它们各自的数据类型,但直到您知道为止。文件中的任何给定行都可以使用带引号的字符串("foo",123,"bar")或不带引号的字符串(foo,123,bar)。我还没有遇到它在给定行中混合的任何地方(即"foo",123,bar),但它可

ruby-on-rails - 在 Rails 中上传 CSV 文件并处理记录以在不保存文件的情况下显示在页面上?

我正在学习Rails,并尝试创建一个文件上传页面来处理CSV数据,而无需使用我的数据库或模型。我还尽量避免使用任何gem,例如Paperclip或Carrier-wave。我取得了一些进展,但出于某种原因,我的代码无法正常工作。我没有在import.html.erb页面上显示CSV文件中的记录。当我单击页面上的上传按钮:localhost:3000/upload时,它会在提交后正确地将我重定向到预期的页面,但文件中的行不会出现。有人知道为什么页面不显示CSV文件中的记录吗?上传文件View(index.html.erb)::import},multipart:true)do%>Cont

ruby - 使用 FasterCSV gem 克服 CSV 解析的基本问题

我发现了FasterCSV(1.5.0)的CSV解析问题,这似乎是一个真正的错误,但我希望有一个解决方法。基本上,当字段用引号引起来时,在分隔符后添加一个空格(在我的例子中是逗号)会生成MalformedCSVError。这是一个简单的例子:#Noquotesonfields--worksfineFasterCSV.parse_line("one,two,three")=>["one","two","three"]#Quotesaroundfieldswithnospacesafterseparators--worksfineFasterCSV.parse_line("\"one\",

ruby - 加载错误 : cannot load such file -- rspec/core/rake_task

当我rake的时候,我得到了这个错误。AllenLins-MacBook-Pro:geoblacklightallenlin$rake-tResolvingdependencies...Youmust`geminstallbundler`and`bundleinstall`torunraketasksrakeaborted!LoadError:cannotloadsuchfile--rspec/core/rake_task/Users/allenlin/Documents/USpatial/geoblacklight/Rakefile:12:in`require'/Users/alle

ruby-on-rails - ruby 中 CSV.open( ) 的第二个参数/参数是什么?

我想我在这里遗漏了一些非常明显的东西,但是每个人为CSV.open方法输入的第二个参数是什么,在本例中是“wb”,我看到这里放了其他字母,但没有人真正解释它的作用。它有什么作用?CSV.open("path/to/file.csv","wb")do|csv|csvruby文档似乎没有给出任何解释。http://www.ruby-doc.org/stdlib-2.0/libdoc/csv/rdoc/CSV.html谢谢! 最佳答案 来自IOOpenMode文档:"r"只读,从文件开头开始(默认模式)。"r+"读写,从文件开头开始。"w

ruby - "file.sync = true"是做什么的?

我查看了文档,但似乎找不到相关部分。谁能告诉我以下代码中调用sync的目的是什么?fh=Tempfile.new('tmp')fh.sync=true 最佳答案 它设置文件的同步模式。这会影响future的操作并导致在没有block缓冲的情况下写入输出。如果f.tty?为真,也就是说,如果文件连接到类似控制台的设备,则输出不是block缓冲的。但是,当输出到管道或文件时,f.tty?将为false,I/O库将切换到block缓冲,也就是说,将输出累积到一个缓冲区并仅在文件关闭、程序退出或缓冲区已满时写入它。这样速度更快,最终结果相同

对 https 的 Ruby 请求 - "in ` read_nonblock':连接由对等方重置(Errno::ECONNRESET)”

这是我的代码domain='http://www.google.com'url=URI.parse"https://graph.facebook.com/fql?q=SELECT%20url,normalized_url%20FROM%20link_stat%20WHERE%20url='#{domain}'"req=Net::HTTP::Get.newurl.pathres=Net::HTTP.start(url.host,url.port){|http|http.requestreq}putsres.body它给了我/home/alex/.rvm/rubies/ruby-2.0.0

ruby - 如何在 ruby​​ 中读取没有 quote_char 的 CSV?

我有一个没有引号字符的TSV文件。每当数据中出现\t时,它总是分隔列,而不是列值的一部分。每当"出现时,它始终是列值的一部分,并且永远不会包含列值。我想用Ruby阅读这个CSV,但它给了我/Users/.rvm/rubies/ruby-1.9.3-p545/lib/ruby/1.9.1/csv.rb:1925:in`block(2levels)inshift':Illegalquotinginline9506.(CSV::MalformedCSVError)我的代码是:CSV.foreach(input_file,{:col_sep=>"\t",:headers=>true})do|r