如何在node.js中部分读取csv文件

时间:2015-10-28 15:24:13

标签: node.js csv

我有一个大的csv文件,我想读取只是部分读取文件,让我们说前1000行。

我打算使用fast-csv个包或node-csv-parse

任务不像读取1000行那样简单,因为行可以有多行值。

有人可以帮助我吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

以下代码使用node-csv-parse库为我工作。我们的想法是在读取10条记录后使用库的流API和文件流中的unpipe解析器。

var fs = require('fs');
var csv = require("csv-parse");
var i = 0;
var num = 10;


var stream = fs.createReadStream("test.csv");
var parser = csv();

function done() {
  stream.unpipe(parser);
  parser.end();
  stream.destroy();
}

parser.on('readable', function () {
  if (i < num) {
    var r = parser.read();
    console.log(i, r);
    i++;
  } else {
    done();
  }
});

parser.on('error', function() {console.log('Error');}); // TODO: Handle appropriately

parser.on('finish', done);
stream.pipe(parser);