使用CSV类解析Ruby中的.csv文件

Sea*_*ong 7 ruby csv

我正在使用Ruby 1.9.3并且我发现了CSV类,但我无法使用它.基本上,我希望能够操作CSV的各种选项,然后将.csv文件拉入数组中以进行操作,最终将该数组推回到新文件中.

这就是我目前所拥有的:

require 'csv'
CSV_Definition = CSV.New(:header_converters => :symbol)

CSV_Total = CSV.Read(File.Path("C:\Scripts\SQL_Log_0.csv"))
Run Code Online (Sandbox Code Playgroud)

但是,我不认为这是改变的正确方法:header_converters.目前我无法让IRB工作来解析这些代码(我不知道如何require 'csv'在IRB中)所以我没有任何特定的错误消息.我对此的期望是创建一个数组(CSV_Total),其中包含一个没有符号的标题.下一步是将该数组放回新文件中.基本上它会擦除CSV文件.

Noz*_*Noz 12

Ruby曾经拥有自己内置的CSV库,从版本1.9 开始已经被FasterCSV取代,点击链接获取文档.

您需要的只是用于通过require 'csv'语句导入CSV类,无论您在何处使用它并进行相应处理.使用foreach语句构建数组非常容易,例如:

people.csv

Merry,Christmas
Hal,Apenyo
Terri,Aki
Willy,Byte
Run Code Online (Sandbox Code Playgroud)

process_people.rb

require 'csv'    

people = []

CSV.foreach(File.path("people.csv")) do |row|
    # Where row[i] corresponds to a zero-based value/column in the csv
    people << [row[0] + " " + row[1]]
end

puts people.to_s 
=> [["Merry Christmas"], ["Hal Apenyo"], ["Terri Aki"], ["Willy Byte"]]
Run Code Online (Sandbox Code Playgroud)

  • "Ruby曾经拥有自己的内置CSV库,从版本1.9开始已被FasterCSV取代"换句话说,[Ruby的内置CSV](http://www.ruby-doc.org/stdlib-2.0 /libdoc/csv/rdoc/CSV.html)使用FasterCSV,它曾经是一个单独的gem,但被引入Ruby 1.9的标准库中. (13认同)