41
39

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Posted at

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レコードずつ読み込む方法よりも扱いやすいかと思います。

41
39
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
41
39

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?