2013-05-29 22 views
7

私はRuby 1.9.3を使用していますが、CSVクラスを検出しましたが、動作させることができません。基本的には、CSVのさまざまなオプションを操作し、.csvファイルを配列にプルすることで、その配列を最終的に新しいファイルに戻したいと考えています。CSVクラスを使用してRubyで.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にこれらのコードを解析するように働かせることはできません(私はrequire 'csv' IRBでどうすればよいかわかりません)ので、特にエラーメッセージはありません。これに対する私の期待は、シンボルがないヘッダーを持つ配列(CSV_Total)を作成することです。次のステップは、その配列を新しいファイルに戻すことです。基本的には、CSVファイルをスクラブします。

+2

それはつまり何であるかを教えてくださいあなたのコード、入力、エラーまたは予期しない出力、および出力として期待したものの例を教えてください。 – Theo

答えて

12

Rubyは、バージョン1.9でFasterCSVに置き換えられた独自のCSVライブラリを使用していましたが、ドキュメントのリンクをクリックしてください。

お客様が必要とするのは、それを使用してそれに応じて処理する場合は、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"]] 
+13

"Rubyには、バージョン1.9のFasterCSVに置き換えられたCSVライブラリが組み込まれていました。「Rubyの組み込みCSV」(http://www.ruby-doc.org/stdlib- 2.0/libdoc/csv/rdoc/CSV.html)は別々の宝石であったFasterCSVを使用しますが、Ruby 1.9では標準ライブラリに入っていました。 –

関連する問題