我正在使用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"))
但是,我不认为这是更改:header_converters
的正确方法。目前我无法让IRB解析这些代码片段(我不确定如何在IRB中require 'csv'
)因此我没有任何特定的错误消息。我对此的期望是创建一个数组(CSV_Total),其中包含一个没有符号的标题。下一步是将该数组放回新文件中。基本上它会擦除CSV文件。
答案 0 :(得分:12)
Ruby曾经拥有自己内置的CSV库,自1.9版本起已被FasterCSV取代,点击链接获取文档。
您需要的只是通过require 'csv'
语句导入CSV类,无论您在何处使用它并进行相应处理。使用foreach语句构建数组非常容易,例如:
<强> people.csv 强>
Merry,Christmas
Hal,Apenyo
Terri,Aki
Willy,Byte
<强> 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"]]