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

duc*_*cky 0 csv node.js

我有一个很大的 csv 文件,我想只读取部分文件,比如说前 1000 行。

我计划使用fast-csv包或node-csv-parse

该任务并不像读取 1000 行那么简单,因为一行可能具有多行值。

有人可以帮助我吗?

谢谢!

ska*_*oor 5

下面的代码使用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);
Run Code Online (Sandbox Code Playgroud)