Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
38
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

node.jsでcsvを同期読み込み(csv-parseを使用)

npmでcsvで検索すると、真っ先に表示されるのがcsvというモジュール
今回はこのcsvに含まれるcsv-parseを使ってcsvを同期読み込みしてみた。

読み込むCSV

input.csv
tanaka,100,F
itou,150,M
kobayashi,200,M
suzuki,120,F
noda,80,M
doi,120,F

モジュールのインストール

csvをインストールしても良いが、今回は読み込みのみをしたかったのでcsv-parseをインストール。  

$ npm install --save csv-parse

やってみる

以下の例ではオプション無しで使用していますが、第二引数にはデリミタやヘッダー行のオプションを指定できる。

read-sync.js
'use strict';

const fs = require('fs');
const csvSync = require('csv-parse/lib/sync'); // requiring sync module

const file = 'input.csv';
let data = fs.readFileSync(file);

let res = csvSync(data);

console.log(res);

出力

$ node read-sync.js 
[ [ 'tanaka', '100', 'F' ],
  [ 'itou', '150', 'M' ],
  [ 'kobayashi', '200', 'M' ],
  [ 'suzuki', '120', 'F' ],
  [ 'itou', '80', 'M' ],
  [ 'doi', '120', 'F' ] ]

ちょっとしたツール作成の際にはStream APIやcallbackを使って1レコードずつ読み込む方法よりも扱いやすいかと思います。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
38
Help us understand the problem. What are the problem?