Gauche で CSV 形式のデータを読み込む
2009年07月23日
make-csv-reader
で、入力ポートを引数とする手続きを作る。
この手続きはポートからレコードを1つ読み込み、フィールドのリストを返す。
port->list
を使って、返されたフィールドのリストをリストに追加していく。
(use text.csv) (define (read-csv file) (let ((reader (make-csv-reader #\,))) (call-with-input-file file (lambda (in) (port->list reader in))))) (define (main args) (if (null? (cadr args)) (error "CSV file is required") (print (read-csv (cadr args)))) 0)
実行結果
$ cat test.csv "上杉謙信","ken@foo.com","09023421011" "織田信長","oda@hoge.com","08034528761" "徳川家康","toku@yahoo.com","0230989124" "豊臣秀吉","saru@gmail.com","08013457812" "毛利元就","nari@yahoo.com","02056720981" $ ./read-csv.scm test.csv ((上杉謙信 ken@foo.com 09023421011) (織田信長 oda@hoge.com 08034528761) (徳川家康 toku@yahoo.com 0230989124) (豊臣秀吉 saru@gmail.com 08013457812) (毛利元就 nari@yahoo.com 02056720981))
参考:Gauche リファレンスマニュアル: CSVテーブル
Gauche ユーザリファレンス: 6.19 入出力
プログラミングGauche
posted with amazlet at 09.07.23
Kahuaプロジェクト
オライリージャパン
売り上げランキング: 51330
オライリージャパン
売り上げランキング: 51330