2012年12月28日金曜日

Ruby1.9.3以降のタブ区切り処理

Ruby1.9.3で、以前に作成したタブ区切りのファイル処理を行ったら盛大にこけました。
Ruby1.9.3は、FasterCSVを標準で使っているようです。ということで以下に仕様メモ

環境はruby-1.9.3-p0

難易度★★☆☆☆

タブ区切りのファイルを読み込む


    # read tab separate file 
    CSV.open(fileName, 'r', :col_sep=>"\t") do |tsv|
      #something
    end

上記ではタブファイルはが正常に読み込まれると、ブロックのtsv変数にファイルデータが格納されます。
ファイルの列ごとのデータを取り出す場合は以下のようにします。


    # read tab separate file 
    CSV.open(fileName, 'r', :col_sep=>"\t") do |tsv|
      tsv.each { |row|
        # row's class is Array.
        
        # something
      }
    end

上記のrowにはタブ区切りの各種データ配列が格納されています。
例えば["test1", "test2", "test3", "test4"]のような感じです。

さらにデータを取りだすときはrowをeachメソッドで呼び出します。

個人的にはFasterCSVを使って速度が劇的に速くなった感じはしませんでした。データ件数が増えれば変わるのでしょうか。

以上です。

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

0 件のコメント:

コメントを投稿

Related Posts Plugin for WordPress, Blogger...