`
like.eagle
  • 浏览: 253172 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ruby1.9中CSV.open的API变化

    博客分类:
  • ruby
阅读更多

参考博文:

http://comments.gmane.org/gmane.comp.lang.ruby.japanese/5658

http://permalink.gmane.org/gmane.comp.lang.ruby.japanese/5662

 

有一个文本文件test.txt (或者test.csv),其内容为:

Fred Bloggs,Manager,Male,45
Laura Smith,Cook,Female,23
Debbie Watts,Professor,Female,38

 

Ruby 代码:

#!/usr/bin/ruby
require 'csv'

# CSV.open('test.csv','r') do |person|
CSV.open('test.txt','r') do |person|
  # p person
  puts person.inspect
end

 

按照书中的示例,代码应该打印三个数组,  

["Fred Bloggs", "Manager", "Male", "45"]
["Laura Smith", "Cook", "Female", "23"]
["Debbie Watts", "Professor", "Female", "38"]

 

但实际的运行结果如下:

输出:

<#CSV io_type:File io_path:"test.txt" encoding:GBK lineno:0 col_sep:"," row_sep:"\r\n" quote_char:"\"">

 

后来经过调查得知,自己前不久将ruby的版本从1.8升级至了→

ruby 1.9.2p180 (2011-02-18 revision 30909) [i686-linux],

 

而ruby1.9中CSV.open的API发生了变更,在ruby1.9中要想打印或者输出csv/txt的文件内容,

需要按照如下的写法:

require 'csv'

CSV.open(...) do |csv|
    csv.each do |row|
      p row
    end
end

 

 

 

 

 

分享到:
评论

相关推荐

    Pragmatic.Programming.Ruby.1.9.Apr.2009.pdf

    这些变化使得Ruby 1.9在处理大数据量和复杂逻辑时更加高效和灵活。 ### 命令行提示符和Ruby安装 书中首先介绍了如何在命令行环境下启动Ruby解释器,这是进行Ruby编程的基本前提。安装Ruby可以通过多种途径实现,...

    Pragmatic.rogramming.Ruby.1.9.and.2.0.4th.Edition.pdf

    在Ruby 1.9和2.0这两个版本中,语言有许多关键性的改进和优化。例如,1.9版本引入了Unicode字符串处理,提高了对字符串编码的支持,使得开发者可以更好地处理多语言文本。此外,1.9对块和 Proc 对象的处理方式进行了...

    jfinal-1.9-all.zip

    JFinal 是基于 Java 语言的极速 WEB + ORM 框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。在拥有Java语言所有优势的同时再拥有ruby、python、php等... jfinal-1.9-all.zip

    Programming Ruby 1.9 (3rd edition)和源码

    在这一版中,作者深入浅出地讲解了Ruby 1.9的改进和新特性,旨在帮助开发者更好地理解和利用这个版本的优势。 1. **Ruby 1.9的关键改进**: - 字符串编码:Ruby 1.9引入了对多种字符编码的支持,使得处理多语言...

    windows下安装Ruby 1.9 二进制zip包

    在Windows环境下安装Ruby 1.9,通常会涉及到编译环境的配置,因为Ruby的源码需要通过编译才能在Windows系统上运行。不过,如果你选择的是预编译的二进制zip包,这个过程就会简化很多。下面,我们将详细讨论如何通过...

    sclo-subversion19-subversion-ruby-1.9.3-1.9.el7.x86_64.rpm

    官方离线安装包,亲测可用。使用rpm -ivh [rpm完整包名] 进行安装

    Pragmatic.Programming.Ruby.1.9

    #### 标题解析:“Pragmatic.Programming.Ruby.1.9” 此标题表明本书主要介绍的是Ruby 1.9编程语言及其在实用主义编程(Pragmatic Programming)中的应用。Ruby是一种简洁、高效且易于学习的动态编程语言,它以其...

    透视Ruby 1.9的Lambda函数

    《Ruby 1.9中的Lambda函数详解》 Ruby语言的一大魅力在于其Block功能,它使得编写简洁、可复用的算法变得轻而易举,甚至让人们对循环的畏惧感大大降低。Block在其他编程语言中被称为Lambda函数或匿名函数,有时也被...

    Programming Ruby 1.9

    9. **Proc和Lambda的区别**:在Ruby 1.9中,`Proc`和`lambda`之间的区别更加明显,特别是关于`yield`的行为,`lambda`更接近于其他函数式语言中的函数行为。 10. **内建类和模块的扩展**:Ruby 1.9对很多内建类和...

    为何Ruby 1.9的不兼容性会导致原有Ruby代码无法工作

    Ruby 1.9 的发布对Ruby社区带来了显著的变化,尤其是其与之前的1.8版本之间的不兼容性。这种不兼容性源于对Ruby语言及其核心库的深入修改,目的是提升语言性能和规范。Ruby 1.9.0的推出并非完全稳定,Matz,即Ruby的...

    Programming-Ruby-1.9.pdf

    - **文件操作**: Ruby提供了丰富的文件和目录操作API。 - **命令行参数**: 可以通过ARGV获取命令行传入的参数。 #### 五、类、对象与变量 - **对象与属性**: 在Ruby中,一切皆为对象,每个对象都有自己的属性和方法...

    Programming Ruby 1.9 (Pragmatic Bookshelf 2009).pdf

    《Programming Ruby 1.9》一书由Dave Thomas、Chad Fowler与Andy Hunt共同编写,是Pragmatic Bookshelf出版的一部权威性指南,旨在帮助读者深入理解和掌握Ruby编程语言的1.9版本。该书不仅是对原版《Programming ...

    ruby参考手册1.9.chm

    ruby的参考手册,中文的,谁想要直接下载的。不用积分呀。方便大家。

    ruby 1.9 教程

    ### Ruby 1.9 教程相关知识点 #### 标题与描述中的核心知识点 - **Ruby 1.9 版本**: 截至2009年,Ruby已发展到1.9版本,这是该语言的一个重要里程碑。Ruby 1.9在性能、语法改进以及新特性方面进行了大量的更新和优化...

    Ruby1.9.1released.zip

    .9.1是ruby 1.9系列以来的第一个production ready的版本,这也标志着Ruby社区从此迈向了1.9的时代。 ruby 1.9是ruby发展历史上的一个里程碑版本: 1、ruby 1.9首次引入字节码即时编译技术,可以大大提高ruby本身的...

    Programming Ruby 1.9 3rd edition

    Ruby中的数组和哈希表都提供了丰富的API来方便地操作数据。 ##### 3. 控制结构 - **控制结构**:Ruby支持常见的控制流语句,如`if`、`else`、`elsif`、`case`、`when`等。这些语句用于根据条件执行不同的代码块,...

    Programming Ruby 1.9 The Pragmatic Programmers' Guide

    《Programming Ruby 1.9 The Pragmatic Programmers' Guide》是学习Ruby编程语言的一本经典著作,尤其针对Ruby 1.9版本进行了详细的讲解。这本书由著名的Pragmatic Programmers出版,因其深入浅出的讲解和实用的编程...

Global site tag (gtag.js) - Google Analytics